【发布时间】:2015-08-10 11:46:01
【问题描述】:
背景: 我正在将一个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>
Microsoft.Web.Infrastructure.dll 也会从 bin 目录中删除。
问题:当我在浏览器中查看源代码时,我没有看到包正在呈现:
链接指向目录,它应该显示目录中的文件
<link href="/Content/css" rel="stylesheet"/>
<script src="/bundles/modernizr"></script>
此捆绑在 Windows 上运行良好,但在 Ubuntu 上,我只能看到目录
我在这里做错了什么?
【问题讨论】:
-
您是否在调试并拥有
<compilation debug="true" />或BundleTable.EnableOptimizations = false;? -
@rageit - 我正在调试,无法在我的项目中看到
BundleTable.EnableOptimizations。它是 web.config 还是 BundleConfig 中的东西?如果是,我该如何使用它? -
您的
bin目录中有Microsoft.Web.Infrastructure.dll吗?如果是这样,请尝试删除它。 Mono 有自己的实现,如果此文件丢失,它将使用它。 -
关闭优化时,是否包括捆绑包中的单个文件?如果没有,那么它可能找不到捆绑包的文件。如果是这样,那么当您打开优化时,某些东西会阻止捆绑器拦截捆绑路径的路由..
-
@BenjaminAnderson - 你说的是 Ubuntu 还是 Windows?在 Windows 上没有问题。
标签: javascript asp.net-mvc css mono bundling-and-minification