gpt4 book ai didi

ruby-on-rails - 使用 Nginx 和 Puma Rails 提供静态文件

转载 作者:行者123 更新时间:2023-12-05 04:08:07 25 4
gpt4 key购买 nike

我正在尝试使用 unix 套接字配置 Nginx + Rails + Puma,但我无法提供我的 Assets 。我有以下配置,如果有人能指出缺少的内容,我将不胜感激。我的 Nginx 配置;

upstream my_app {
server unix:///var/run/my_app.sock;
}

server {
listen 8080;
server_name _;
root /var/www/plantmonitorweb/public; # app location

location / {
proxy_pass http://my_app;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# this one is from Rails guides
location ~ ^/assets/ {
expires 1y;
add_header Cache-Control public;

add_header ETag "";
}
}

在生产中.rb

  config.public_file_server.enabled = false
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'

puma.rb 没有改变。我正在使用以下命令运行 puma 服务器;

puma -e production -b unix:///var/run/my_app.sock

我在远程机器上运行它们(具体来说是 Rasberry Pi)Puma 运行良好,似乎 nginx 正在访问我的服务器,但是当我打开 chorome 控制台时,我看到以下内容

 GET http://192.168.1.35:8080/pack/app.js

我检查了 public/pack 下的这个文件,它就在那里。

我的 Nginx 配置在/etc/nginx/conf.d/中,它包含在 Nginx.conf 中(包括/etc/nginx/conf.d/*.conf)

最佳答案

在 Rails 5 中,React js 文件在 public/pack/ 下提供。所以我们需要添加那些要静态提供的位置以及 Assets 文件夹。所以在我的 nginx 配置中添加了以下位置。

 location ~ ^/(assets|packs)/ {
gzip_static on;
expires 1y;

add_header Cache-Control public;
add_header Last-Modified "";
add_header ETag "";
}

关于ruby-on-rails - 使用 Nginx 和 Puma Rails 提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47970900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com