ruby-on-rails - 如何使用 puma/nginx 在/public 中提供不属于 Assets 管道的 Assets ?

标签 ruby-on-rails amazon-web-services nginx puma

这是一个 AWS 问题,我使用的是 Ruby 2.2 (Puma) 平台。

我编译的 Assets (在/public/assets 中)按预期提供。/public 中的其他 Assets 没有得到服务(404)。

我在哪里配置这个?这是 nginx 的问题吗?还是美洲狮的问题?

或者这只是 AWS 图像问题?

这是一个实时示例(robots.txt 应该从根提供):
http://staging.us-west-2.elasticbeanstalk.com/public/robots.txt

还值得一提的是,默认的Passenger 平台图像开箱即用。

最佳答案

所以,我使用的是完全相同的环境,我用一点 google fu 找到了解决方案:

使用 rails 4+,在文件中:

/config/environments/production.rb

您应该在文件顶部附近找到以下几行
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?

这一切都很好,因为我们使用的是乘客(nginx 或 apache),但是 Puma 没有为我们处理这个问题:)

为了解决这个...

在您的 AWS 控制台中,转到相关项目的弹性 beanstalk 仪表板,然后单击左侧菜单上的“配置”。

现在单击标题为“软件配置”的框中的小齿轮图标

现在您应该在“环境属性”下看到一个表,在“属性名称”下的新字段中输入“RAILS_SERVE_STATIC_FILES”,然后在值字段中输入“true”(不带引号),点击应用。

中提琴!现在您的项目正在提供静态文件:)

关于ruby-on-rails - 如何使用 puma/nginx 在/public 中提供不属于 Assets 管道的 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34963529/

相关文章:

ssl - nginx ssl3_get_record 版本号错误 502 Bad Gateway

ruby-on-rails - ActionController::RoutingError(nil:NilClass 的未定义方法 ‘sub’)

ruby-on-rails - 如何终止服务器对可操作 channel 的订阅?

ruby-on-rails - 液体 view_paths 错误

node.js - 使用 AWS EB Worker 时的自定义 header

performance - Nginx + uWSGI + Flask 应用程序性能测试与 ab

http - Nginx 无法在端口 80 上工作

ruby-on-rails - HTTParty 使用 http 基本身份验证给出 401

amazon-web-services - RDS 代理目标组不可用

ruby-on-rails - 如何限制 AWS CloudFront 使其仅处理来 self 域中单个目录的请求?