【发布时间】:2014-06-26 12:33:10
【问题描述】:
到目前为止,我的所有应用程序的 CSS 都通过 application.css.scss 提供,如下所示:
/* ...
*= require jquery-ui
*= require_self
*= require_tree .
*/
@import "bootstrap";
我最近需要创建一个单独的、精简的清单文件,该文件只为我们网站中的一个可嵌入资产提供服务。不幸的是,虽然我无法让资产管道打包和处理 CSS 文件。它通过如下所示的 URL 不断投入生产:
<link href="/stylesheets/minimag.css" rel="stylesheet" />
而不是指纹识别和预编译应该看起来像:
<link href="/assets/minimag-292d6edcd4fd2398abab273acf8.css" rel="stylesheet" />
在调试时我发现清单必须被称为 application.css
我很有可能遗漏了什么。但是在将问题剥离到其基本要素时,我只查看了应用程序的样式表本身。
我发现当它被称为application.css.scss 时,它编译得很好,但是当名称被更改时它没有得到处理:
所以这行得通:
application.html.haml
...
= stylesheet_link_tag "application"
...
连同一个名为application.css.scss 的样式表。在生产中,这会产生包含 HTML:
...
<link href="/assets/application-292d6edcd4fd6ec1da12b93fb273acf8.css" rel="stylesheet" />
...
但这不起作用
application.html.haml
...
= stylesheet_link_tag "testing"
...
与完全相同样式表一起,但现在重命名为testing.css.scss。在生产中,这会产生包含 HTML:
...
<link href="/stylesheets/testing.css" rel="stylesheet" />
...
“application.css.scss”有何特别之处?
为什么会这样?为什么我不能只使用具有旧名称的清单文件?
(如果它完全相关,我将部署到 Heroku)
【问题讨论】:
标签: ruby-on-rails heroku asset-pipeline