资产管道:不包括admin.css文件

Lea*_*cim 26 ruby-on-rails asset-pipeline

我将Rails 3.0应用程序升级到Rails 3.1,其中涉及到这个

/*
*= require_self
*= require_tree .
*/
Run Code Online (Sandbox Code Playgroud)

在application.css文件中.但是,有一个admin.css文件现在覆盖了主应用程序css文件.

有没有办法排除admin.css文件被包含?在网站的管理部分,我手动包含admin.css文件,但我需要一种方法将其从用户界面中排除.

JoJ*_*JoS 99

您可以stub在清单中使用sprockets'指令,如下所示:

/*
*= require_self
*= require_tree .
*= stub admin
*/
Run Code Online (Sandbox Code Playgroud)

这将排除admin.css以及它所需的所有 css !! 所以,如果你admin.css的清单看起来像这样:

/*
*= require bootstrap
*= require_self
*/
Run Code Online (Sandbox Code Playgroud)

bootstrap.css也将是不包括没有require可能还是传统的!照顾好这个;)

  • 这是对原始问题的简洁回答. (2认同)

Sye*_*lam 5

之前有人问过类似的问题,您应该检查一下

\n\n

Sprockets 使用清单文件来确定要包含和提供哪些资产。这些清单文件包含指令 \xe2\x80\x94 指令,告诉 Sprockets 构建单个 CSS 或 JavaScript 文件需要哪些文件。使用这些指令,Sprockets 加载指定的文件,在必要时处理它们,将它们连接成一个文件,然后压缩它们(如果 Rails.application.config.assets.compress 为 true)。通过提供一个文件而不是多个文件,可以大大减少页面的加载时间,因为浏览器发出的请求更少。

\n\n

您可以根据需要拥有任意数量的清单文件。例如,admin.css 和 admin.js 清单可以包含用于应用程序管理部分的 JS 和 CSS 文件。

\n\n

特别是,您可以指定单个文件,它们会按照指定的顺序进行编译。

\n\n

示例和更多详细信息可以在本指南中找到。

\n\n

因此,您的新 application.css 将变为:

\n\n
/*\n *= require styles\n *= require layout\n */\n\n/* Other styles */\n
Run Code Online (Sandbox Code Playgroud)\n