我有一个Rails 3.1应用程序,但无论如何更改CSS都不会生效。我已经运行了bundle exec rake assets:precompile
一次成功解决了问题,但现在无论怎样都只能使用旧的CSS。
我有一个Rails 3.1应用程序,但无论如何更改CSS都不会生效。我已经运行了bundle exec rake assets:precompile
一次成功解决了问题,但现在无论怎样都只能使用旧的CSS。
因为你的资产现在已经预编译了,所以你需要使用以下命令清理它们
bundle exec RAILS_ENV=development rake rails_group=assets assets:clean
我需要在生产环境中将上述步骤结合起来以重新编译我的资源。
首先,我必须执行以下操作:
rake assets:clean
确保我处于正确的环境中
然后我需要删除预编译创建的public/assets
目录(或者只是你需要修复的文件,例如application-<hash>.css
)
最后重新运行
rake assets:precompile
重启我的Apache服务器(我使用带有Apache的Passenger,未经nginx测试)
rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets
任务..一旦我把它切换到 development
模式下,它就正常工作了!:) 谢谢。 - raddrick在Rails、Chrome和Mac中对我有用的方法:
1 - 在终端中:
rake assets:clean
2 - 在Sublime文本编辑器或Finder中:
删除"Public > Assets"文件夹
3 - 在终端中启动本地服务器:
rails s
4 - 在 Chrome 中:
http://localhost:3000/
5 - 如果相关,请重新加载Chrome并清除缓存:
cmd + shift + R
现在,您应该能够在本地主机上更新CSS文件并通过重新加载页面立即看到更改。
请勿在终端中运行“rake assets:precompile”,因为它会重新创建“public”文件夹中的“assets”文件夹,这样您就无法直接在本地主机上查看CSS文件的更新内容。
rake assets:precompile
只是为了测试一下在生产环境下是否一切正常。然后我花了3个小时寻找这个解决方案。谢谢! - Gustavo G.对我来说,只需要从公共目录中删除编译的css/js文件。
结果发现其他开发人员把它放在那里,却没有告诉任何人。
config/environments/test.rb
中设置config.serve_static_files = false
可以解决问题。public
文件夹中的所有文件不再被提供(包括404.html、favicon.ico、robots.txt等)。
rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets
对我有用。 - raddrickconfig.assets.digest = true
才能使资产缓存在资产更改时失效。 - mltsy