在 Telerik RadControls 中,当 EnableEmbeddedScripts 为 true 时,如何控制 ScriptResource.axd 文件的生成位置?
默认情况下,它将它们呈现在我的网络应用程序的根目录中,并且
<add key="Telerik.WebControls.RadControlsDir"
value="~/Resources/RadControls/"/>
似乎不起作用,EnableEmbeddedScripts 不是假的。
在 Telerik RadControls 中,当 EnableEmbeddedScripts 为 true 时,如何控制 ScriptResource.axd 文件的生成位置?
默认情况下,它将它们呈现在我的网络应用程序的根目录中,并且
<add key="Telerik.WebControls.RadControlsDir"
value="~/Resources/RadControls/"/>
似乎不起作用,EnableEmbeddedScripts 不是假的。
如ScriptResourceHandler MSDN 页面中所述,ScriptResourceHandler 仅仅是一个“处理嵌入脚本文件的所有请求的类”。
它生成您可以在浏览器开发工具(即:chrome)中看到的输出,但生成的内容本身并不存储在服务器上。相反,用于生成此内容输出的资源在应用程序中编译(这是文件属性中的“构建操作:嵌入式资源”)。
附加说明:处理程序通常由 Web.config 文件中的以下部分定义(尽管 Telerik 可能对其文件使用自定义处理程序,例如主题/javascript):
<httpHandlers>
<add verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler,
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
我不知道这个答案是否可以帮助你,但我找到了这个信息——很可能你已经知道了,但我还是把它贴在这里,谁知道?
它表示,当您使用 Visual Studio 内置 Web 服务器(正如大多数开发人员所做的那样)而不是 IIS 时,此首选项不起作用。
“注意:本文建议的方法在您使用内置的 VS 2005 Web 服务器时不起作用。它们仅在您的站点在 IIS 中运行时才起作用,因为 VS 2005 内部服务器不支持虚拟目录。如果您在本地进行测试(而不是使用 IIS),您的 Web 应用程序中必须有 RadControls 文件夹的副本。”
该注释已从此处获取,它是关于 VS2005 的:
编辑 1:此外,当控件的 UseEmbeddedScripts 属性设置为 false 时它正在工作,所以这不是你的情况。好吧,无论如何我希望它是有用的。
编辑 2:我找到了另一个链接,可以帮助更好地找到解决方案。正如@cahmadzadeh 所说,这些是 Http 处理程序,它们很可能在 Telerik 之外进行管理: