2015-02-23 31 views
0

我在Asp.Net MVC 4.创建一个简单的网站有一个布局中的布局具有Javascript代码的头,像这样:如何获取javascript呈现在Asp.Net中注入到我的布局的视图中?

<script [email protected]("/Scripts/jquery.min.js")></script> 
<script [email protected]("/Scripts/jquery.dropotron.min.js")></script> 
<script type="text/javascript" [email protected]("/Scripts/jquery.slidertron.min.js")></script> 
<script [email protected]("/Scripts/skel.min.js")></script> 
<script [email protected]("/Scripts/skel-layers.min.js")></script> 
<script [email protected]("/Scripts/init.js")></script> 

这使得罚款,当我第一次加载网站/网页。

该项目使用典型的URL/Home/Index路径作为默认值 - 但是当我通过在URL中添加'/ Home/Index'显式调用该页面时,页面呈现时没有任何样式。除了家中的任何页面,当它加载时,它们都是不带样式的,即使它们全都只是视图被注入到这个相同的布局中,并且在头部使用了相同的Javascript。

任何想法为什么Javascript并未呈现在我的所有视图中?

+0

确保您在视图顶部有正确的布局参考。 @ { Layout =“〜/ link to your shared layout”; } – 2015-02-23 19:14:09

+0

如果这是一个新网站,请考虑使用[Bundles](http://www.asp.net/mvc/overview/performance/bundling-and-minification),而不是单独添加脚本。有显着的性能优势,这个问题可能无关紧要。 **编辑:**我刚刚查看了那个链接的图表,他们似乎是骗人的(没有指标,不同的规模),但是,下面的表格显示硬数字 – Basic 2015-02-23 20:37:04

回答

0

唯一能够真正引起这种情况的是使用相对URL来引用文件。当只加载没有路径的域时,将会在URL:http://domain.com/Scripts/foo.js处正确检索像Scripts/foo.js这样的引用。但是,如果路径为/Home/Index,则URL将变为http://domain.com/Home/Index/Scripts/foo.js,这显然不正确。

然而,你的情况在这里,你不使用完全相对路径,因为每个与/应该前缀,因为它总是从站点根目录,参考尽管当前的URL路径。如果我们假设您直接从您的项目中复制并粘贴了这些内容,那么您在遇到此问题时会遇到一些问题。首先,验证你在这里发布的代码实际上是你在布局中所拥有的。然后,确保视图使用正确的布局,并且您已经完成了一些愚蠢的事情,例如最近在进行更改时保存了该文件。除此之外,尝试在浏览器中进行硬刷新和/或清除缓存,以确保它不仅仅是加载过时的页面。

+0

一如既往,我欣赏帮助球员:)我我仍然不确定究竟是什么导致了这个问题 - 但是在查看源文件和跟随到JavaScript文件的链接后,我注意到它们与我的版本中包含的不同 - 我所做的更改没有更新。所以我做了一个任意的修改,保存了,清除了我所有本地主机历史记录和voilla的浏览器!毕竟这是陈旧的页面,我只是不知道它们是陈旧的。 – thisextendsthat 2015-02-23 21:16:30

相关问题