是否可以在主Rails App目录之外创建公共目录?
模式
/apps/app1
/apps/app2
/apps/this_dir_wants_to_be_public
我需要将它与几个Rails和非Rails应用程序一起使用来管理上传
答案 0 :(得分:1)
答案 1 :(得分:1)
我能想到的两种方式:
首先:如果您使用的是nginx,您可以将其配置为首先检查您的自定义目录,如果找到则从那里提供文件,否则请求rails app进行响应。 Nginx配置看起来像这样
upstream backend {
server localhost:3000;
}
server {
listen 80;
server_name whatever.com;
root /your_static_path;
try_files $uri $uri/index.html @backend;
location @backend {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://backend;
}
}
它使用nginx作为反向代理。您在3000端口(或任何其他您喜欢的服务器)上运行瘦服务器,只有在根目录中找不到请求的文件时,nginx才会转向它。
第二:只需创建符号链接
ln -s /apps/this_dir_wants_to_be_public /apps/rails_app/public
so / apps / this_dir_wants_to_be_public是实际目录,/ apps / rails_app / public链接到它。对于rails app和简单的
来说,似乎绝对透明