3

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

为什么它的渲染与??

4

2 回答 2

0

如果它在本地主机上运行,​​这是一个已知的错误。如果 IIS 正在运行应用程序,它很可能是一个问题。您是否尝试过仅使用 MVC 运行它?

否则,在 IIS 上运行它时实际上没有解决方法。

于 2014-05-03T14:40:28.643 回答
0

当服务器知道时,您的客户端不知道“~”符号的含义。这只是您放在字符串中的另一个字符。

当您添加相对 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>
于 2014-05-03T14:47:38.733 回答