【发布时间】:2014-06-20 11:26:50
【问题描述】:
rails 初学者在这里
我正在尝试将应用设置为生产,但资产管道存在很大问题。正在开发中,每个资产都在/assets/blabla.extension下生成
但是,我正在运行 nginx,并且在运行 rake assets:precompile 时,它会按照应有的方式在 /public/assets 下创建资产。但是当我访问我的应用程序时,它会生成像 /application.css 这样的 URL,而不是像它应该生成的 /assets/application-digestq12343.css。
我认为这个问题有一个简单的解决方法.. 但我找不到它。请帮帮我!
更新: 从文档中我读到 Sprockets “默认”是 /assets 但它肯定不在我的应用程序中。我使用最新版本的rails。文档可以过时吗? http://edgeguides.rubyonrails.org/asset_pipeline.html
即使我将config.assets.prefix = "/assets" 添加到我的作品中,这仍然意味着我不会加载资产,因为摘要会丢失。
【问题讨论】:
-
您是使用
rails s还是使用外部 Web 服务器运行生产环境? -
外部 我使用 nginx,我做了一些更改并使用 rake 任务来构建资产,突然它就可以正常工作并且 url 改变了。奇怪,我不确定是什么解决了它。 :p
-
资产重新编译后,您似乎必须重新启动 Rails 服务器。生产环境,你知道的,它应该在任何小事后重新启动:) 如果我在没有编译资产的情况下运行生产服务器,重新编译资产,刷新网页而不重新启动服务器,我可以重现你的情况。
-
是的,大概就是这样。我首先运行 rake assets:precompile 但这不起作用,我不得不运行 bunle exec rake assets:precompile RAILS_ENV=production。但是感谢您的帮助:)
标签: ruby-on-rails nginx asset-pipeline