名为“响应”的脚本引用不再有效



使用: 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 创建项目的默认方式,因此有了此修复程序,如果不编辑要包含和扩展的每个链接,我的任何链接都不起作用。 不理想

我尝试使用包管理器进行更新,但没有任何成功。 我还验证了响应.js文件存在于我的脚本文件夹中,其他文件(如引导程序)也是如此。

我已经在这里搜索并用谷歌搜索了很长时间,但是有很多不相关的结果包含脚本管理器的摘录,结果是无穷无尽的。

我不确定是否需要更正或是否需要其他文件。 重建我的网站没有效果,我已经删除了我读到的每篇帖子的"临时"文件,这些帖子说它可能适用于不同但类似的问题。

此错误的纠正措施是什么?

在 Site.Master 文件中找到以下行:

<asp:ScriptReference Name="respond"/>

并修改为:

<asp:ScriptReference Name="respond" Assembly="System.Web.Extensions" />

我自己也遇到了同样的问题,并通过执行以下操作修复了它。

将以下代码添加到 BundleConfig 类的 RegisterBundles 方法中:

ScriptManager.ScriptResourceMapping.AddDefinition(
                "respond",
                new ScriptResourceDefinition
                {
                    Path = "~/Scripts/respond.min.js",
                    DebugPath = "~/Scripts/respond.js",
                });

我遇到了同样的问题,以上都不起作用......验证您的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);
    }

解决方案:

  • 在生产服务器上编译项目,而不是在开发计算机上进行预编译。

  • 如果使用VS一键发布工具,请在"设置"下,确保未选中"发布期间预编译"。

当我将从

Visual Studio(在我的例子中为 2015)生成的模板 asp.net Web 窗体应用程序部署到 Azure 应用服务时,我遇到了此问题。

对我来说,上面给出的解决方案都不起作用。我完全按照这个问题中的描述得到了错误。

然后我偶然发现了下面的文章,它展示了添加jquery包的示例。向 Web 窗体添加捆绑和缩小

在该示例之后,我删除了 RegisterBundles 方法中"响应"的 AddDefinition 模板代码。然后我添加了以下内容并重新生成并上传了应用程序 dll。

            bundles.Add(new ScriptBundle("~/bundles/respond").Include(
                    "~/Scripts/respond.min.js"));

然后我在site.master中将以下内容添加到Asp:PlaceHolder中。

        <%: Scripts.Render("~/bundles/respond") %>

最后,我删除了 site.master 中 ScriptManager 中包含的响应。

您的 bundleConfig 似乎没有启动。

首先尝试重新生成和清理项目。之后,尝试查看文件Global.asax.cs看看是否有问题。

或者尝试获取默认的 Global.asax.cs 文件并将其复制到其中。

我尝试了上述方法,但没有取得多大成功。然后我按照另一个帖子的指示尝试

<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

最新更新