1

我已經在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目錄稱爲app1app2分別鏈接到./current/public中的符號鏈接這兩種情況。

當我訪問該網站時,所有的頁面顯示正確,但沒有一個靜態資產似乎工作!如果我查看頁面源代碼,我會看到類似這樣的頁面的鏈接:/app1/home/index。如果我點擊它,那個鏈接就起作用。

但是,也有這樣的鏈接:/app1/assets/application-1b13569e9620782f423d4cd3ce931750.css爲.css和.js資產。 但是,當我點擊鏈接時,他們沒有找到!

是不是我的nginx + Passenger配置有問題,它沒有正確路由這些?檢查public/assets文件夾顯示文件實際上已經正確預編譯並確實出現在那裏。

+0

我覺得我的回答與你的問題的新內容完全無關:) – 2013-02-08 20:35:27

+0

@QumaraSixOneTour對,對不起。我想我已經找到了解決問題的方法。您可以將它添加到您的答案中,我會將您的答案標記爲正確。我認爲這與nginx無法正確提供靜態資源(如果您設置了子URI)有關?所以我進入了production.rb並設置了'config.serve_static_assets = true',現在它工作正常!只需在答案結尾處扔掉這些信息,我就會把它交給你! – aardvarkk 2013-02-08 20:37:10

回答

1

在你的情況下,資產,所造成的錯誤,應該被包含在你的application.js清單文件是這樣的:

//= require hsv_to_rgb 
//= require overlays 
//= require initialize 

,並從production.rb刪除此:

config.assets.precompile += %w(hsv_to_rgb.js initialize.js overlays.js) 

常部署後,在您的服務器上的public/assets(生產環境中)中,您應該只會看到application.jsapplication.css的不同版本。

考慮到你的電話到外部JavaScript(最好的解釋here)在你的視圖模板您application.js前右,這樣的事情:

<%= javascript_include_tag 'https://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false' %> 
<%= javascript_include_tag "application" %> 

編輯:實際的問題已被解決@aardvarkk,簡單地改變設置在production.rb這樣的:

config.serve_static_assets = true 

nginx配置包括一個子-URI建立。

+0

這並沒有解決問題。據我瞭解,這只是把所有的.js文件放入單個application.js中,但我的問題似乎是根本找不到資產。 – aardvarkk 2013-02-08 19:55:03

+0

我將重寫我的問題,因爲我已經獲得了有關正在發生的一些新的見解。感謝您的回答。 – aardvarkk 2013-02-08 19:59:43

+0

我希望它能幫到你。 – 2013-02-08 20:00:33

相關問題