c# - Bundles 中的脚本使用 ~/Scripts 呈现,因此未找到

标签 c# asp.net-mvc-4 bundle

我有一个由其他人部分开发的 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/

相关文章:

jquery - 如何在 Ajax Post 后更新我的 View

cocoa - 如何分配Image文件夹?

ruby-on-rails - Bundler 找不到 gem "bundler": 的兼容版本

c# - 如何将非英文命名文件添加到 Visual Studio 2010 中的安装项目?

c# - 在继承类中使用 ReactiveCommand 和 WhenAny

c# - 需要代码解释

java - 测试期间模拟/ stub Arguments.createMap

javascript - 如何在 Javascript 中连接 C# ActiveX 事件处理程序

asp.net-mvc-4 - WEBAPI ActionContext Request.Properties.Add 用于存储敏感信息

c# - EF 不会崩溃但没有数据返回到 View