【问题标题】:Stylesheets and scripts bundles not working in Mono样式表和脚本包在 Mono 中不起作用
【发布时间】:2015-08-10 11:46:01
【问题描述】:

背景: 我正在将一个ASP.NET MVC 5 应用程序(在Windows 8.1, VS2013 社区开发,.NET 4.5.1MySql 自定义成员资格和角色提供者)项目迁移到Monodevelop(在Ubuntu 14.4MonodevelopMono)。

在我的~/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 上,我只能看到目录

我在这里做错了什么?

【问题讨论】:

  • 您是否在调试并拥有&lt;compilation debug="true" /&gt;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


【解决方案1】:

在您的 BundleConfig 文件中添加以下内容:

BundleTable.EnableOptimizations = true;

然后切换到释放模式。

这应该可以解决问题

【讨论】:

    【解决方案2】:

    我今天自己也遇到了这个问题。 Mihai-Tibrea 的答案确实有效,但它导致了我的目的不可接受的要求。

    如果始终启用捆绑(BundleTable.EnableOptimizations = true;和/或在发布模式下构建)不可接受,请考虑以下事项:

    在 BundleConfig.cs 中找到这样的一行:

    "~/Content/site.css"
    

    改成

    "~/Content/Site.css"
    

    请注意,在单声道中,文件名的大小写非常重要,而在 Windows 中则不重要。因此,要么您的 html 需要使用小写的 site.css,要么您的包需要以大写字母开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      相关资源
      最近更新 更多