使用:Visual Studio Express 2013 for Web编写.NET 4.5.1站点。
项目最初是在默认的“创建新网站”模板上构建的,因此有问题的部分由IDE添加到我的项目中,但尚未进行编辑。
这是一个长达数周的项目,今天我开始收到与创建时添加的“罐装”项目有关的错误。到目前为止,它一直没有错误地工作。
错误消息是:
Server Error in '/' Application.
'respond' is not a valid script name. The name must end in '.js'.
我已将此调试与我的site.master文件中的此行直接相关:
<asp:ScriptReference Name="respond" />
在此处查看评论 此参考包含在我的主文件部分中:
这是IDE在创建时添加的更大的脚本引用组的一部分。
在排除故障时我尝试添加.js;将路径属性添加到实际文件中;并完全评论了这条线。
添加扩展名和/或路径会导致不同的错误:
Server Error in '/' Application.
The assembly 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' does not contain a Web resource that
has the name 'respond.js'. Make sure that the resource name is spelled correctly.
唯一成功的故障排除一直在评论它但是这打破了另一个关键功能:访问我的链接需要.ASPX扩展现在我以前可以访问我的链接而无需在我的文件上指定扩展名。 ..这是通过ide创建项目的默认方式,所以有了这个修复,我的链接都没有编辑,没有编辑每个链接和扩展。 NOT IDEAL 。
我尝试使用程序包管理器进行更新,但没有任何成功。我还验证了我的脚本文件夹中存在的respond.js文件,以及bootstrap等其他文件。
我在这里搜索并搜索了很长一段时间,但是有太多无关的结果,其中包含剧本管理员的摘录,结果是无穷无尽的。
我不确定需要进行更正,或者是否需要其他文件。重建我的网站没有任何效果,我已经删除了每个帖子的“临时”文件,我发现它可能适用于不同但相似的问题。
此错误的纠正措施是什么?
答案 0 :(得分:2)
在Site.Master文件中找到以下行:
<asp:ScriptReference Name="respond"/>
并修改为:
<asp:ScriptReference Name="respond" Assembly="System.Web.Extensions" />
答案 1 :(得分:2)
我自己遇到了同样的问题并通过以下方式解决了这个问题。
将以下代码添加到BundleConfig类的RegisterBundles方法中:
ScriptManager.ScriptResourceMapping.AddDefinition(
"respond",
new ScriptResourceDefinition
{
Path = "~/Scripts/respond.min.js",
DebugPath = "~/Scripts/respond.js",
});
答案 2 :(得分:2)
我遇到了同样的问题,以上都没有... 验证你的global.asax.cs,在我的情况下缺少Routeconfig和BundleConfig行,添加它们后,它再次工作。
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
答案 3 :(得分:1)
在生产服务器上编译项目 ,而不是在开发计算机上进行预编译。
如果使用VS一键发布工具,请在“设置”下,确保未选中“在发布期间预编译”。
答案 4 :(得分:0)
看来你的bundleConfig没有启动。
首先尝试重建和清理项目。之后,尝试查看文件Global.asax.cs并查看是否有错误。
或尝试获取默认的Global.asax.cs文件并将其复制到其中。
答案 5 :(得分:0)
当我将从Visual Studio(在我的案例中为2015)生成的模板asp.net Web表单应用程序部署到Azure应用程序服务时,我遇到了这个问题。
对我来说,上面给出的解决方案都没有奏效。我完全按照这个问题的描述得到了错误。
然后我偶然发现了下面的文章,其中显示了添加jquery包的示例。 Adding Bundling and Minification to Web Forms
在该示例之后,我删除了AddDefinition的模板代码,用于&#34;响应&#34;在RegisterBundles方法中。然后我添加了以下内容并重新构建并上传了应用程序DLL。
bundles.Add(new ScriptBundle("~/bundles/respond").Include(
"~/Scripts/respond.min.js"));
然后我将以下内容添加到了Site.master中的Asp:PlaceHolder。
<%: Scripts.Render("~/bundles/respond") %>
最后,我在site.master中删除了ScriptManager中包含的响应。
答案 6 :(得分:0)
我尝试了上述方法但没有取得多大成功。 然后我尝试了另一篇文章
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
介于两者之间
并在web.config
就像一个魅力。 格雷厄姆 https://forums.asp.net/t/1857743.aspx?Bundling+not+working+when+deployed+to+web+host+works+fine+locally