def flatten(alist):
if alist == []:
return []
elif type(alist) is not list:
return [alist]
else:
return flatten(alist[0]) + flatten(alist[1:])
из Google
Файл .axd является файлом обработчика HTTP. Существует два типа файлов .axd.
Это файлы, которые сгенерированы в когда вы используете ScriptManager в своем веб-приложении. Это генерируется только один раз, когда вы развертываете его на сервере.
Проще говоря, ScriptResource.AXD содержит все клиентские javascript-процедуры для Ajax. Просто потому, что вы включаете скриптамена, который загружает файл сценария, он никогда не будет отображаться как ScriptResource.AXD - вместо этого он будет просто передан как файл .js, который вы отправляете, если ссылаетесь на внешний файл сценария. Если вы вставляете его в код, он может просто отображаться как часть html в качестве тега и кода, но в зависимости от того, кодируется ли он в соответствии с тем, как ToolKit обрабатывает его, может быть или не отображаться как ScriptResource.axd. ScriptResource.axd вводится только с AJAX, и вы никогда не увидите его в другом месте
И, конечно же, необходимо
Это не файлы (их нет на диске) - это просто имена, под которыми зарегистрированы некоторые обработчики HTTP. Взгляните на web.config
в каталоге .NET Framework (например, C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config
):
<configuration>
<system.web>
<httpHandlers>
<add path="eurl.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
<add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
<add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
<add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
</httpHandlers>
</system.web>
<configuration>
Вы можете зарегистрировать свои собственные обработчики с именем whatever.axd
в вашем приложении web.config
. Хотя вы можете привязывать обработчики к любым именам, которые вам нравятся, .axd
по умолчанию работает над IIS6 из коробки (по умолчанию IIS6 передает запросы для *.axd
в среду выполнения ASP.NET). Используя произвольный путь для обработчика, например Document.pdf
(или действительно что-либо, кроме ASP.NET-специфических расширений), требуется больше работы по настройке. В IIS7 в режиме интегрированного конвейера это уже не проблема, так как все запросы обрабатываются стекем ASP.NET.