Rails在生产模式下无法生成正确的链接路径

时间:2015-06-11 10:00:09

标签: ruby-on-rails ruby-on-rails-4 nginx puma

在生产模式下无法生成正确链接的应用。 例如,下面的代码

  <%= 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.assets.compile = true中的/config/environments/production.rb。但没有任何改变。

1 个答案:

答案 0 :(得分:0)

如果您想在本地环境中运行生产模式,您应该通过更改以下内容告诉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