我已經在VPS上設置了nginx和Passenger來爲兩個獨立路徑的兩個Rails應用程序提供服務。這是我的目標 - 從單獨的子URI爲每個Rails應用程序提供服務。從一個IP服務多個Rails應用程序:找不到靜態資產(nginx + Passenger)
123.123.123.123/app1
123.123.123.123/app2
繼客運+ nginx的文檔,我已經設置了以下nginx.conf
:
server {
listen 80;
server_name 123.123.123.123;
location /app1 {
alias /u/apps/app1_project_name;
passenger_enabled on;
passenger_base_uri /app1;
}
location /app2 {
alias /u/apps/app2_project_name;
passenger_enabled on;
passenger_base_uri /app2;
}
}
我已經創造了/u/apps/app1_project_name
和/u/apps/app2_project_name
目錄稱爲app1
和app2
分別鏈接到./current/public
中的符號鏈接這兩種情況。
當我訪問該網站時,所有的頁面顯示正確,但沒有一個靜態資產似乎工作!如果我查看頁面源代碼,我會看到類似這樣的頁面的鏈接:/app1/home/index
。如果我點擊它,那個鏈接就起作用。
但是,也有這樣的鏈接:/app1/assets/application-1b13569e9620782f423d4cd3ce931750.css
爲.css和.js資產。 但是,當我點擊鏈接時,他們沒有找到!
是不是我的nginx + Passenger配置有問題,它沒有正確路由這些?檢查public/assets
文件夾顯示文件實際上已經正確預編譯並確實出現在那裏。
我覺得我的回答與你的問題的新內容完全無關:) – 2013-02-08 20:35:27
@QumaraSixOneTour對,對不起。我想我已經找到了解決問題的方法。您可以將它添加到您的答案中,我會將您的答案標記爲正確。我認爲這與nginx無法正確提供靜態資源(如果您設置了子URI)有關?所以我進入了production.rb並設置了'config.serve_static_assets = true',現在它工作正常!只需在答案結尾處扔掉這些信息,我就會把它交給你! – aardvarkk 2013-02-08 20:37:10