Mar*_*uis 13 ruby-on-rails sprockets asset-pipeline
我刚刚为新的Rails 3.1应用程序进行了第一次部署,但资产似乎无法正常工作.我在部署时预编译了所有内容,它会public/assets
像预期的那样出现.但是,例如stylesheet_link_tag "application"
在我的布局中的输出有一个href指向/stylesheets/application.css
.这显然不起作用.
奇怪的是,在开发模式下,一切似乎都很好,它/assets/application.css
与预期相似.
我将我config/application.rb
和config/environments/production.rb
文件与我们在资产管道上的另一个应用程序进行了比较,相关设置似乎是相同的.
我应该在哪里看?
Ric*_*lse 14
当助手生成此代码时:
/stylesheets/application.css
Run Code Online (Sandbox Code Playgroud)
这是因为在您处于的任何模式下都没有启用管道.有几个可能的原因.
您在错误的配置文件中启用了管道.(应在application.rb配置文件中启用管道)
您已在application.rb中启用它并在其他位置禁用它.
你不小心在某个地方评论过铁路
有关详情,请参阅此问题.
如果这是升级后的应用程序,请检查管道指南最后一部分中的所有配置选项,以确保正确设置它们.
我知道这是针对rails 3.1但是轨道4的用户可能会发生非常类似的错误,所以为了完整性和帮助未来的googlers.最可能的原因是您没有将该资产添加到production.rb中的预编译指令,它看起来像这样:
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
config.assets.precompile += %w( )
Run Code Online (Sandbox Code Playgroud)
正如OP所说,application.css没有被添加,症状是url以/ stylesheets或/ javascripts而不是资产开头.所以解决方案是
config.assets.precompile += %w( your_assets.css your_assets.js )
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11909 次 |
最近记录: |