生产环境下使用Paperclip的Rails无法工作

3

我在我的Rails 5应用程序中使用Paperclip gem,在开发中一切正常,但在生产环境中没有显示任何图像,在puma日志中出现错误:

ActionController::RoutingError (No route matches [GET] "/system/articles/images/000/000/003/medium/learn_language.jpg"):

在我的应用文件夹中,当我进入 public/system/articles/images/000/000/003/medium 文件夹时可以看到图片 learn_language.jpg,但我无法弄清楚图片未出现的原因。


1
笔误:你的标题应该是“Paperclip在生产环境中无法工作”,而不是“Paperclip在生产环境中能够工作”。 - Joshua Grosso Reinstate CMs
1
另外,您是否有在生产中使用Rails 5的充分理由?如果没有,您可能需要使用一个稳定版本。 - Joshua Grosso Reinstate CMs
我会继续使用R5,即使是beta版。这可以让你的代码库保持最新状态。 - Richard Peck
<%= image_tag @articles[0].image.url(:medium) %> 的翻译如下: - Adnan Pirota
我尝试了Rails 4.2.5.1版本,但它仍然无法正常工作。看起来这与生产环境有关,但我仍然无法让它正常运行。 - Adnan Pirota
显示剩余2条评论
1个回答

3
在Rails 5(已测试过5.0.0.rc1版本)中,如果你在没有nginx或不同的代理服务器(如……)的情况下运行了rails。
rails s -e production

当你使用Paperclip时,需要设置:
config.public_file_server.enabled = true

在您的config/environments/production.rb文件中:

或者您可以设置RAILS_SERVE_STATIC_FILES环境变量,因为Rails默认会检查它。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接