后台:我正在迁移ASP.NET
MVC 5
个应用程序(在Windows 8.1, VS2013
社区开发,.NET 4.5.1
,MySql
自定义成员资格和角色提供者)项目Monodevelop
(Ubuntu 14.4
,Monodevelop
,Mono
)。
在我的~/App_Start/BundleConfig
班级
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
}
在我的~/Views/Shared/_Layout.cshtml
视图中
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
在我的Web.Config
<add namespace="System.Web.Optimization" />
另外
<compilation defaultLanguage="C#" debug="false"> </compilation>
同样从bin目录中删除Microsoft.Web.Infrastructure.dll
。
问题:我在浏览器中查看来源时,我看不到捆绑包已呈现:
链接指向目录,它应显示目录中的文件
<link href="/Content/css" rel="stylesheet"/>
<script src="/bundles/modernizr"></script>
我在这里做错了什么?
答案 0 :(得分:6)
在 BundleConfig 文件中添加以下内容:
BundleTable.EnableOptimizations = true;
然后切换到发布模式。
这应该可以解决问题
答案 1 :(得分:1)
我今天刚刚遇到过这个问题。 Mihai-Tibrea的答案确实有效,但它导致我的目的无法接受。
如果始终无法接受捆绑(BundleTable.EnableOptimizations = true;和/或构建在发布模式下),请考虑以下事项:
在BundleConfig.cs中找到这样一行:
"~/Content/site.css"
将其更改为
"~/Content/Site.css"
请注意,在mono中,文件名的情况非常重要,而在Windows中则不重要。所以要么你的html需要使用小写的site.css,要么你的bundle需要以大写字母开头。