我剛剛將我的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
重新啓動服務器,但還是沒能解決問題。任何幫助是極大的讚賞。
你已經在你的代碼中硬編碼了某處'localhost:3000'。或者你的部署爲你做了。我開始在代碼中對'localhost:3000'進行全局搜索,並查看它在哪裏。另外,這可能是由Rails或Puma引起的,甚至是Apache的配置引起的。 – Vlad
我發現的唯一情況就是在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