Ben*_*gan 13 css haml ruby-on-rails heroku
我是一个铁杆新手,我一直试图弄清楚heroku上的stylesheets_link_tag是怎么回事.
如果我使用
= stylesheet_link_tag "style", :cache => true
Run Code Online (Sandbox Code Playgroud)
heroku使用"all.css"并且没有拿起样式表,但是如果我使用的话
= stylesheet_link_tag "style", :cache => false
Run Code Online (Sandbox Code Playgroud)
它使用名称"style.css"为样式表提供服务.为什么?
btw*_*btw 17
这是在样式表链接标记上调用:cache => true的结果.
:cache => true获取所提供的所有样式表,并将它们连接到一个名为all.css的文件中.
你只在Heroku部署中看到这个的原因是因为只有当Rails应用程序在生产模式下运行时它才会调用连接的all.css.
例如,假设我有三个样式表,并将其包含在我的标题中:
= stylesheet_link_tag "application", "jquery-ui", "style", :cache => true
Run Code Online (Sandbox Code Playgroud)
在开发中,这将包括application.css,jquery-ui.css和style.css(按此顺序).
在生产中,它会将三个文件中的所有CSS(按提供的顺序)连接成一个名为"all.css"的文件,这个文件将是唯一包含的CSS文件.
这样做的好处是可以减少生产中的HTTP请求,理想情况下,包含CSS的文件大小更小,这有望加快页面加载速度.
编辑正如Casper在评论中指出的那样,Heroku有一个只读文件系统.您可能希望查看Heroku Asset Packager以获取Heroku特定的解决方案.