到目前为止,我的所有应用程序的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.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" />
...
为什么会这样?为什么我不能使用任何旧名称的清单文件?
(如果我在部署到Heroku的所有相关内容)
答案 0 :(得分:0)
如果要将样式表用作独立文件,则必须将样式表添加到预编译中。
# config/environments/production.rb
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
config.assets.precompile += %w(testing.css)