С ASP.net я знаком с созданием главной страницы, а затем с возможностью установки этой главной страницы для файла.aspx.
На одном из наших сайтов, где я работаю, нам предоставляется доступ к ftp для редактирования статических html-страниц. Внутри этих html-страниц есть несколько asp-тегов, в частности директива страницы с атрибутами title, language и masterpagefile, а также несколько тегов контента с атрибутами id, contentplaceholderid и runat.
Мой вопрос в том, как они это делают? Если бы мне пришлось добавить главную страницу в visual studio для моего собственного проекта, я не смог выбрать главную страницу для файлов.html. Они каким-то образом создают/перезаписывают файл.aspx после загрузки? Если я перейду на сайт, url покажет расширение.html.
Внутри этих html-страниц есть несколько asp-тегов, в частности директива страницы с атрибутами title, language и masterpagefile, а также несколько тегов контента с атрибутами id, contentplaceholderid и runat.
Затем хост обрабатывает эти .html
файлы во время выполнения ASP.NET перед их службой. На техническом уровне страницы ASP.NET не обязательно должны иметь расширение .aspx
, это просто по соглашению. Веб-сервер можно настроить для обработки любых файлов в виде страниц ASP.NET.
Если вы посмотрите, например, на конфигурацию IIS (и особенности этого будут сильно различаться с версиями IIS), вы можете найти что-то вроде этого (и это может быть довольно датировано, мне не приходилось смотреть под капотом в IIS для лет) отображение для .aspx
файлов в aspnet_isapi.dll
. Та же конфигурация также может быть изменена так же, как и map .html
файлы в aspnet_isapi.dll
, которые обрабатывали бы их одинаково.
Это не обычная практика не только из-за соглашения, но и потому, что обработка на стороне сервера добавляет накладные расходы и менее эффективна, чем обслуживание статического файла непосредственно с веб-сервера. Поскольку файлы .html
традиционно имеют статический контент, гораздо быстрее позволить IIS обслуживать их напрямую, чем обрабатывать их с помощью механизма ASP.NET. Это возможно, и ведущий, о котором идет речь, похоже, делает именно это, это просто необычно по этим причинам.
В Visual Studio вы можете изменить настройки для обслуживания динамического контента.
В Application Designer вы должны указать, предоставляет ли приложение ASP.NET динамическое или статическое содержимое. Динамический контент указывает, что для запуска приложения или любых веб-сервисов, связанных с приложением, требуется процессор сценариев, такой как ASP.NET. Статический контент указывает, что процессор сценариев не требуется, например, для запуска приложения или для отображения HTML.
http://msdn.microsoft.com/en-us/library/ms242474(v=vs.90).aspx