[英]Rails 3.1 Asset Pipeline does not work through nginx reverse proxy
我正在將Rails 3.0應用程序升級到Rails 3.1,並且資產管道在開發中不起作用。 我使用nginx反向代理瘦。
例如
javascript_include_tag 'application' # => <script src="/javascripts/application.js" type="text/javascript"></script>
隨着卷曲......
$ curl -sL -w "%{http_code}" "http://myapp.dev/javascripts/application.js" -o /dev/null
404
$ curl -sL -w "%{http_code}" "http://myapp.dev/assets/application.js" -o /dev/null
404
但是當我直接點擊瘦而不是通過nginx時,我得到了我期望的結果:
javascript_include_tag 'application' # => <script src="/assets/application.js" type="text/javascript"></script>
它有用嗎?
$ curl -sL -w "%{http_code}" "http://localhost:3000/assets/application.js" -o /dev/null
200
是的! 為什么會出現這種情況?
以下是我的nginx配置的摘錄: https : //gist.github.com/1163638
很高興提供更多信息,請問!
您是否修改了開發環境文件? 默認情況下,資產管道工作僅在生產中發生。
您的問題很可能是您需要預編譯資產。 試試跑步
rake assets:precompile
這是因為nginx會盲目地嘗試為它應該提供的資產服務,不像ruby服務器會檢查是否存在,如果它們不存在則編譯。
編輯:
據我所知,如果文件不存在,沒有辦法讓nginx將請求傳遞給后端,但是我對配置nginx並不是很熟悉,所以這可能是一個很好的問題。 ServerFault 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.