生产模式的应用无法生成正确的链接。例如,下面的代码
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
正在生成以下代码:
<link rel="stylesheet" media="all" href="/stylesheets/application.css" data-turbolinks-track="true" />
<script src="/javascripts/application.js" data-turbolinks-track="true"></script>
我预编译了javascript和样式表。他们的正确路径分别是/public/assets/application-0d1386df5e82480bb54a6cd082e626ed2d46d364e867ca7d9ce009d3af8c1718.js
和/public/assets/application-5d8165dcf2b8902df77aed37c7ab6fee8c7d62844cb48ece6360d1fa4f079804.css
。
另外,我确实在/config/environments/production.rb
中更改了config.assets.compile = true
。但什么都没有改变。
如果你想在本地环境中运行生产模式,你应该告诉 rails 通过更改以下内容来提供资产本身
config.serve_static_files = true
在生产环境本身中,您必须使用 nginx 进行配置 http://vladigleba.com/blog/2014/03/27/deploying-rails-apps-part-4-configuring-nginx/
并确保在将早期更改推送到生产环境之前已撤消更改。
config.serve_static_files = false