我有一个由其他人部分开发的MVC应用程序。它适用于那台特定的机器。 当我在我的机器上运行应用程序时,我发现bundle中的脚本是以相对路径呈现的。
<script type="text/javascript" src="~/Scripts/jquery-1.9.1.js"></script>
所有脚本都以与CSS文件呈现良好相同的方式呈现。我这样使用捆绑包。
BundleConfig.cs中的
bundles.Add(new ScriptBundle("~/bundles/EMRMobileScript").Include (
"~/MobileQuerys/js/jquery.js",
"~/MobileQuerys/docs/_assets/js/jqm-demos.js"
));
在_Layout.cshtml中
@Styles.Render("~/Content/EMRMobilecss")
@System.Web.Optimization.Scripts.Render("~/bundles/EMRMobileScript")
在浏览器控制台中
GET http://localhost:6326/~/Scripts/jquery-1.9.1.js 404 (Not Found)
为什么用〜 ??
进行渲染答案 0 :(得分:0)
如果它在本地主机上运行,则会发生已知错误。如果IIS正在运行应用程序,那很可能是一个问题。您是否尝试过只运行MVC?
否则,在IIS上运行它时,实际上并没有解决这个问题。
答案 1 :(得分:0)
您的客户并不知道&#34;〜&#34;标志意味着服务器。它只是你放在一个字符串中的另一个字符。
当您添加相对src时,它将是&#34; concated&#34;到当前路径,这是
http://localhost:6326/
这就是你收到这个请求的原因:
http://localhost:6326/~/Scripts/jquery-1.9.1.js
现在,当您在服务器中使用以下代码行时:
@Styles.Render("~/Content/EMRMobilecss")
服务器知道如何映射路径(其中〜是应用程序&#34; root&#34;目录)。
为了从你的js渲染特定的包,请使用:
<script src='http://localhost:6326/Scripts/jquery-1.9.1.js'></script>