【问题标题】:Script loaded from the _Layout not found找不到从 _Layout 加载的脚本
【发布时间】:2013-12-16 21:17:03
【问题描述】:

我正在底部的 _Layout.cshtml 页面中加载一些脚本:

<script src="~/scripts/jquery-1.8.2.min.js"></script>
<script src="~/scripts/easing.js"></script>
<script src="~/scripts/bootstrap.js"></script>

@RenderSection("scripts", required: false)

但由于某种原因,它不会加载 jquery 文件。 easingbootstrap 脚本文件将被加载:

如果我从 _Layout.cshtml 页面中排除 jquery,它将无法加载 easing.js 文件(之前已加载):

我快疯了,因为我不知道发生了什么。有没有人遇到过这样的行为或者我做错了什么?

【问题讨论】:

  • 我发现这个答案是相关的...link在子页面中使用'@section scripts'。

标签: javascript jquery asp.net-mvc asp.net-mvc-4


【解决方案1】:

似乎解析器正在处理列表中的第一个 ~ (查看来自 Chrome 的生成路径。)这可能是您的布局文件中较早的标记错误或完全其他的东西 - 很难用提供的信息说.通常,我们在脚本和样式标签中使用 Url.Content() 帮助程序而不是原始的 ~ 字符串,没有问题。

我建议您更新您的 &lt;script&gt; 标记,提供更多信息。

  1. 将类型添加到脚本标签中。
  2. 尝试使用@Url.Content() html 帮助程序,看看这是否有助于呈现正确的链接。

这将是结果标签

<script type="text/javascript" src="@Url.Content("~/scripts/jquery-1.8.2.min.js")"></script>

【讨论】:

  • App_Start 文件夹下的 BundleConfig.cs 中有 jquery 包吗?
  • @Neel - 是的,我们今年已经开始在 MVC 中使用捆绑选项。但是,这是一个完全不同的调用/帮助程序来呈现捆绑 URL。
  • @Tommy:好的,这行得通。 Url.Content 助手修复了它(无论我是否指定了 HTML 脚本元素的类型)。你能解释一下为什么吗?
  • 没有看到更多信息,我不能说。我确实想说,在不使用 URL 帮助程序的情况下使用 ~/Path 是对 Razor 视图引擎的较新版本之一的补充,所以也许这就是导致问题的原因。或者,就像我之前所说的,可能是某个地方的 HTML 标记不好?无论哪种方式,Url.Content 都是在 MVC 视图中包含静态内容的典型做法。
  • 错误标记是指未封闭的 HTML 标记?如果是,我已经仔细检查过,一切看起来都不错。这些脚本放置在正文结束标记 (
猜你喜欢
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2018-04-05
  • 2012-02-18
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
相关资源
最近更新 更多