最近几天我尝试将我的应用程序部署到生产环境中。我已部署完成但我的应用没有显示图标。
此配置在app / config / environments / production.rb
中config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = false
config.serve_static_assets = true
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
和nginx.conf
location ~ ^/(assets)/ {
root /my_public_path_here;
gzip_static on;
expires max;
add_header Cache-Control public;
}
如果你有类似的问题,请留言,谢谢你![/ p>
答案 0 :(得分:2)
看看this Nginx配置示例是否一致且功能齐全。此配置描述了通过Unix套接字在 Unicorn 上运行的 Rails app 的 Nginx 代理。关于您的问题,您的location ~ ^/(assets)/ {...
部分似乎是正确的。
尝试try_files
部分(注意$uri $uri/index.html $uri.html
):
location / {
## Serve static files from defined root folder.
## @your_up_stream_name is a named location for the upstream fallback, see below.
try_files $uri $uri/index.html $uri.html @your_up_stream_name;
}
还要确保@your_up_stream_name
是正确的上游名称。为了以防万一,确保玩具已经预先编译; - )
$ RAILS_ENV=production bundle exec rake assets:precompile
答案 1 :(得分:0)
我使用这样的东西来提供静态资产(如果它们存在)
location / {
try_files $uri @app;
}
location @app {
# rails app stuff here...
}
也许您只是错过了上面的try_files
指令。