如何让 javascript 在 Asp.Net 中注入到我的布局中的视图中呈现?

How to get javascript to render in views injected into my layout in Asp.Net?

我正在 Asp.Net MVC 4 中创建一个具有单一布局的简单网站。布局的头部有 Javascript 标签,如下所示:

<script src=@Url.Content("/Scripts/jquery.min.js")></script>
<script src=@Url.Content("/Scripts/jquery.dropotron.min.js")></script>
<script type="text/javascript" src=@Url.Content("/Scripts/jquery.slidertron.min.js")></script>
<script src=@Url.Content("/Scripts/skel.min.js")></script>
<script src=@Url.Content("/Scripts/skel-layers.min.js")></script>
<script src=@Url.Content("/Scripts/init.js")></script>

当我第一次加载 website/page 时,渲染效果很好。

该项目默认使用典型的 URL/Home/Index 路由 - 但是当我通过将“/Home/Index”添加到 URL 来显式调用它时,页面呈现时没有任何样式。除了首页之外的任何页面在加载时都没有样式呈现,即使它们都只是视图被注入到相同的布局中,头部有相同的 Javascript。

知道为什么 Javascript 没有在我的所有视图中呈现吗?

唯一真正导致这种情况的是使用相对 URL 来引用文件。当只加载没有路径的域时,将在 URL: http://domain.com/Scripts/foo.js 处正确检索 Scripts/foo.js 之类的引用。但是,像/Home/Index这样的路径,URL就变成了http://domain.com/Home/Index/Scripts/foo.js,这显然是不正确的。

但是,在您的情况下,您没有使用完全相对路径,因为每个路径都以 / 为前缀,应该 导致它始终从站点根目录,尽管当前路径为 URL。如果我们假设您直接从您的项目中复制并粘贴了它,我有点不知道您是如何遇到这个问题的。首先,验证您在此处发布的代码实际上是您布局中的代码。然后,确保视图使用正确的布局,并且您已经做了一些愚蠢的事情,例如保存文件以防您最近进行更改。除此之外,请尝试在浏览器中进行硬刷新 and/or 清除缓存,以确保它不只是加载过时的页面。