生产中的机车资产

时间:2013-09-01 19:47:04

标签: ruby-on-rails asset-pipeline locomotivecms

我在locomotivecms谷歌小组中提出了这个问题,但还没有得到任何有用的回应。所以,试试这里。我觉得问题不仅仅是轨道问题,而是与locomotivecms引擎的实现方式有关。

我按照此处的说明安装了locomotivecms应用程序 - http://doc.locomotivecms.com/guides/get-started/install-engine

该应用程序在开发模式下运行良好。

然后我预先编译了资产并以生产模式(bundle exec unicorn_rails -E production)启动了它。现在,当我在浏览器中打开应用程序时,不会呈现样式表。我检查了公共/资产,浏览器请求的指纹样式表存在于那里。但它没有正确呈现。这是chrome视图资源显示的内容:

enter image description here

看起来样式表包含html。如果我从public / assets文件夹中打开它,它包含css。我认为机车正在拦截请求并且不知何故没有返回css。机车是开源的,他们的代码在github上 - https://github.com/locomotivecms/engine

1 个答案:

答案 0 :(得分:4)

问题不在于Locomotivecms,这是一个我不知道的东西。我在production.rb中跟随了:

config.serve_static_assets = false

如果您在生产中使用Nginx或Apache运行应用程序,此设置是正确的。在这种情况下,他们服务于公共资产。但是,如果您只是在生产中的rails服务器上运行您的应用程序,如unicorn,webbrick,thin等,那么您需要将此设置设置为true,以便rails服务器从公用文件夹提供资源。我将其设置为true,启动服务器(bundle exec unicorn_rails -E production),资产服务正常。

有关config.serve_static_assets的更多说明,请访问:http://guides.rubyonrails.org/configuring.html