如何在Asp.Net中注入我的布局的视图中渲染javascript?

时间:2015-02-23 18:52:59

标签: javascript asp.net-mvc razor razorengine

我正在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>

当我第一次加载网站/页面时,这会很好。

项目使用典型的URL / Home / Index路由作为默认路由 - 但是当我通过添加&#39; / Home / Index&#39;在没有任何样式的情况下呈现页面的URL。加载时除了主页之外的任何页面都是在没有样式的情况下呈现的,即使它们只是在头部中使用相同的Javascript注入到同一布局中的视图。

为什么Javascript没有在我的所有观看中呈现的任何想法?

1 个答案:

答案 0 :(得分:0)

唯一可以真正导致此问题的是使用相对URL来引用该文件。如果只加载没有路径的域,则会在网址Scripts/foo.js中正确检索http://domain.com/Scripts/foo.js之类的引用。但是,使用类似/Home/Index的路径,网址会变为http://domain.com/Home/Index/Scripts/foo.js,这显然不正确。

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