如何解决如何在docker上使用rails和nginx服务于编译资产?
我一直在为使用Rails应用程序进行生产做准备,而在使用Nginx时遇到了很多麻烦。与没有预编译资产的开发相比,现在没有任何效果。我使用链轮处理JavaScript的CSS,图像和字体以及webpacker。问题是,每当我在所看到的教程中尝试任何操作时,它都不会起作用。我总是会遇到类似“没有路由匹配[GET] / packs / js /”或“没有路由匹配[GET] / assets / ...”的错误消息。
这是我的default.conf的样子:
upstream railsapp {
server hubsite:3000;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /app/public;
# Deny requests for files that should never be accessed
location ~ /\. {
deny all;
}
location ~* ^.+\.(rb|log|go|exe)$ {
deny all;
}
try_files $uri @rails;
# serve static (compiled) assets directly if they exist (for rails production)
location ~ ^/(assets|packs|images|javascripts|stylesheets|swfs|system)/ {
try_files $uri @rails;
access_log off;
gzip_static on;
# to serve pre-gzipped version
expires max;
add_header Cache-Control public;
add_header Last-Modified "";
add_header ETag "";
break;
}
location @rails {
proxy_pass http://railsapp;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
}
# 404 HANDLING
location = /404.html {
internal;
}
}
我也尝试为我的正确URL修改proxy_pass,但是没有用。基本上,URL后总是会有一个“ / portal /”,例如“ mytestwebsite.com/portal/signin”。所有这些都在docker容器中运行,并且根目录从我检查的结果来看似乎是正确的。
如果有人对为什么它不起作用有任何想法,请随时向我指出正确的方向!谢谢!
解决方法
nginx一切都很好,问题是我没有正确地将卷与docker-compose链接!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。