Rails公共文件夹项目在生产中不可用

时间:2014-03-21 22:21:22

标签: ruby-on-rails ruby-on-rails-4 https favicon

我的应用的/public目录中的开发模式中有一些可以访问的项目:favicon.icorobots.txt

我可以在开发过程中查看这些内容。 localhost:3000/favicon.ico。但是,当我推进生产时,资产在这些路径上是不可见的。因此,我没有favicon图标,谷歌也无法找到我的robots.txt文件。

如何解决此问题,以便可以通过相关网址访问/public目录?

2 个答案:

答案 0 :(得分:14)

app/config/environments/production.rb

中添加以下行
config.serve_static_assets = true

以下是Rails指南所说的内容

  

config.serve_static_assets将Rails配置为静态服务   资产。默认为true,但在生产环境中已转为   用作运行的服务器软件(例如Nginx或Apache)   应用程序应该提供静态资产。与默认值不同   设置运行时设置为true(绝对不推荐!)或   使用WEBrick在生产模式下测试您的应用程序。否则你不会   能够使用页面缓存和对经常存在的文件的请求   无论如何,在公共目录下都会点击你的Rails应用程序。

答案 1 :(得分:12)

Rails 5.1

app/config/environments/production.rb

中添加以下行
config.public_file_server.enabled = true

更新

config/environments/production.rb包含以下行:

config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

这意味着您可以在启动rails服务器时在命令行中传递RAILS_SERVE_STATIC_FILES,例如:

RAILS_ENV=production RAILS_SERVE_STATIC_FILES=yes rails s -b 0.0.0.0 -p 3000