2016-12-31 31 views
0

我剛剛將我的Rails應用程序部署到Ubuntu 16.04 Droplet。當rails服務器從本地計算機運行時,我可以在瀏覽器的myappname.com上查看網站,但只要關閉rails服務器,CSS就會失敗。Rails:從用戶的本地主機而不是Ubuntu服務器加載生產資產

此外,對於從本地計算機以外的設備訪問它的其他人,CSS始終會失敗。

這裏的問題是,我已經硬編碼我的網站的某個地方,試圖從本地計算機訪問網站,而不是服務器本身檢索文件。每個錯誤我看到:

http://localhost:3000/assets/jquery-ui/accordion.self-ahsdjhkjads98ha98shd8ha98hds98hadskjhfo4h8fw9hhw398hhiuh9sd8h8hs89fdhj.css?body=1 Failed to load resource: net::ERR_CONNECTION_REFUSED 

因爲它說:「localhost」的出現,大家誰嘗試加載該頁面將嘗試在本地計算機上的東西加載它。所以實際上我的電腦是在端口3000上監聽的,在這種情況下,我需要調整我的網站編碼方式,以便從本身而不是本地主機中獲取CSS資源。

config/environments/production.rb我改變:

config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 

到:

config.serve_static_files = true 

然後我的Ubuntu服務器上我的生產環境我跑bundle exec rake assets:precompile,與sudo service apache2 restart重新啓動服務器,但還是沒能解決問題。任何幫助是極大的讚賞。

+1

你已經在你的代碼中硬編碼了某處'localhost:3000'。或者你的部署爲你做了。我開始在代碼中對'localhost:3000'進行全局搜索,並查看它在哪裏。另外,這可能是由R​​ails或Puma引起的,甚至是Apache的配置引起的。 – Vlad

+0

我發現的唯一情況就是在client_secret.json裏面:'{「installed」:{「client_id」:「8934589754879453897-kjasdjhd898d98ahid9ha89cad.apps.googleusercontent.com」,「project_id」:「magnetic-clone-123133」,「auth_uri 「:」 https://accounts.google.com/o/oauth2/auth 「 」token_uri「: 」https://accounts.google.com/o/oauth2/token「, 」auth_provider_x520_cert_url「:」 HTTPS:/ /www.googleapis.com/oauth2/v1/certs」, 「client_secret」: 「KJHhhjhakddhas8yya87s7」, 「redirect_uris中」:[ 「lkslckncs; ncjnskdj; sndckj;」, 「http://localhost.com」]}}'。我把'localhost'改成了'pawbookings',希望這是修復,但事實並非如此。 – Ctpelnar1988

回答

0

您可以嘗試將config.asset_host設置爲config/application.rb到您的域,但它聽起來像您的反向代理被錯誤配置。

+0

謝謝,我試過了,但這並沒有解決問題:/ – Ctpelnar1988

相關問題