我有一个ASP.NET MVC 4 Web应用程序。我的所有JS文件都在Script文件夹中。我把这些都捆绑在一起:
bundles.Add(new ScriptBundle("~/Scripts/js").IncludeDirectory("~/Scripts", "*.js"));
在Views / Shared中我有_BootstrapLayout.basic.cshtml,这次调用捆绑包:
<script src="@Url.Content("~/Scripts/js")" type="text/javascript"></script>
我已经将它放在身体和头部,它没有任何区别。 当我在调试模式下本地运行它时,它工作得很好。当我部署它时,它不起作用,并在Chrome控制台中显示以下内容:
Failed to load resource: the server responded with a status of 404 (Not Found) http://mysite.azurewebsites.net/Home/scripts/js
“mysite”是我在Azure上的网站名称。
由于捆绑包是〜/ Scripts / js,因此它不会在/ Home / scripts / js中找到任何内容。我该如何解决这个问题?
更新I:
由于@ jamoerdyk的答案如下,参考问题已修复。应该包含脚本包,如下所示:
@Scripts.Render("~/Scripts/js")
现在,我仍然收到错误并且脚本无效。 Chrome控制台如下所示:
Uncaught SyntaxError: Unexpected token * /scripts/js?v=fIEoVL9cKX9p8_aBxRN9dMr1OHqh5ZMjO7E8iZ7Z3hQ1:12
有什么想法吗?或者它根本不相关?
更新II:
缩小失败 - 这是第二个问题。所以我停止使用捆绑一段时间,并对脚本进行常规的src引用。
答案 0 :(得分:2)
您应该像这样包含脚本包:
@Scripts.Render("~/Scripts/js")
代替你的
<script src="@Url.Content("~/Scripts/js")" type="text/javascript"></script>