asp.net mvc4发布到iis7.0,访问不正常。 25
发布到iis里head标签里就空了
知道的告诉下。
好像是_Layout.cshtml没加载!
有没有遇到的啊。 展开
看你这个link和script标签中的字符串。应该用的是BundleConfig来配置样式表和脚本。那么出现这种情况就有两种可能。第一种可能的确是和Layout没有加载到有关。第二种是BundleConfig中的写法错误(也有可能发布的时候样式表和脚本文件没有一起发布,不过这种可能性比较小,此处忽略)。解决方案如下:
对于第一种情况,加载不到的原因可能是:你用了区域Areas。没有指定全局Layout,也没有指定局部Layout那么当然加载不到。你只要在每个cshtml文件的开头都用
Layout="~/Layout路径";
这种形式指定。这样就解决了。
对于第二种。稍微复杂。在BundleConfig中你肯定用到了如下的写法:
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
这里你要注意,默认情况下,BundleConfig的忽略规则会无视压缩文件,比如
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.min.css"));
这个路径里面带有“min”。会被认为是压缩过的样式文件。直接忽略。关于压缩的事情建议你搜索一下,关键字直接就用“BundleConfig”就行了。一大堆。你试试把min去掉或许就行了。
还有一点。还是这个文件路径的问题。你看这个StyleBundle或者ScriptBundle里面的字符串。必须要和你文件的路径吻合。比如:
你要把这个文件包括进去,那么你在StyleBundle里面必须要写:
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery-ui.css"));
关于/Content/themes/base/css这里面的最后一个css。这个好像是可以自定义的。我以前研究过mvc4源代码。现在忘记掉了。你可以自己去试试。或者也去看看源代码。
至于include中的路径就更不用说了必须要写相对路径。
就是这样了。
你上面的页面带有mobile字样,只怕是手机浏览器的版本吧
都是localhost,页面内容一样就算是没加载_Layout.cshtml。
建议你先点击第二个图中Elements标签左侧的手机图标,然后刷新页面试下
我已经说了可能是手机版,你都没尝试么
非常有可能是 _ViewStart.cshtml 文件里Layout 指定错了.
注意 _ViewStart.cshtml 文件是可以继承和复写的.
2015-07-13