2014-02-21 102 views
1

是否有可能在主Rails應用程序目錄之外創建公​​共目錄?在Rails應用程序目錄之外設置公共目錄

架構

/apps/app1 
/apps/app2 
/apps/this_dir_wants_to_be_public 

我需要使用它與幾個Rails和非Rails應用程序來管理上傳

+0

只需創建符號鏈接文件到公用文件夾 – itsnikolay

+0

同意,符號鏈接。在你的rails文件夾裏,在一個命令窗口中:'ln -s/path/to/real/folder public'(你需要先刪除現有的公用文件夾) –

回答

1

種兩種方式我能想到的:

首先:如果您使用nginx的,你可以配置它來先檢查您的自定義目錄,並從那裏如果找到提供文件,否則請Rails應用程序的性反應。 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 

所以/應用/ this_dir_wants_to_be_public將是實際的目錄和/應用/ rails_app /公共鏈接。似乎絕對透明的rails應用程序和簡單

+0

nginx解決方案對於服務資產可以正常工作,但它將不會幫助解決內部導軌問題:路徑對於image_tag,javascript_tag等是錯誤的。符號鏈接是要走的路。 –

相關問題