我有一个由其他人部分开发的 MVC 应用程序。它适用于该特定机器。 当我在我的机器上运行应用程序时,我发现 bundle 中的脚本正在使用相对路径呈现。
<script type="text/javascript" src="~/Scripts/jquery-1.9.1.js"></script>
所有脚本呈现的方式与 CSS 文件呈现良好的方式相同。我正在以这种方式使用 bundle 。
在 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)
为什么用 ~ 渲染??
最佳答案
您的客户端不知道“~”符号的含义,而服务器却知道。它只是您放在字符串中的另一个字符。
当您添加一个相对 src 时,它将“连接”到当前路径,即
http://localhost:6326/
这就是您收到此请求的原因:
http://localhost:6326/~/Scripts/jquery-1.9.1.js
现在,当您在服务器中使用这行代码时:
@Styles.Render("~/Content/EMRMobilecss")
服务器知道如何映射路径(其中 ~ 是应用程序的“根”目录)。
为了从你的 js 中渲染特定的包,使用这个:
<script src='http://localhost:6326/Scripts/jquery-1.9.1.js'></script>
关于c# - Bundles 中的脚本使用 ~/Scripts 呈现,因此未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942280/