【发布时间】:2012-03-09 21:35:23
【问题描述】:
我有一个 Rails 3.1 应用程序,由于某种原因,当我更改 CSS 时,更改没有显示出来。我做了bundle exec rake assets:precompile,它曾经有帮助,但现在无论如何我都坚持使用旧的 CSS。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline
我有一个 Rails 3.1 应用程序,由于某种原因,当我更改 CSS 时,更改没有显示出来。我做了bundle exec rake assets:precompile,它曾经有帮助,但现在无论如何我都坚持使用旧的 CSS。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline
由于您的资产现在已预编译,您需要使用以下内容清理它们
bundle exec RAILS_ENV=development rake rails_group=assets assets:clean
【讨论】:
rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets 虽然对我有用
config.assets.digest = true 以使资产缓存在资产更改时失效。
对于我的生产环境,我必须结合上述几个步骤来重新编译我的资产。
首先我必须做的:
rake assets:clean
确保我在正确的环境中
然后我需要删除预编译创建的public/assets 目录(或者只是您需要修复的文件,例如application-<hash>.css)
然后终于重新运行
rake assets:precompile
并重新启动我的 apache 服务器(我使用 apache 的乘客,未使用 nginx 测试)
【讨论】:
您可能想尝试 rake assets:clean 然后 rake assets:precompile
【讨论】:
rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets 中的 rake 任务。一旦我将它切换到development,它运行得很好! :) 谢谢。
对我来说只是从公共目录中删除已编译的 css/js 文件。
原来是其他开发者把它放在那里并没有让任何人知道。
【讨论】:
在 rails、chrome、mac 中什么对我有用:
1 - 在终端中:
rake assets:clean
2 - 在 Sublime 文本或 Finder 中:
删除“Public > Assets”文件夹
3 - 在终端启动 localhost 服务器:
rails s
4 - 在 chrome 中:
http://localhost:3000/
5 - 重新加载 chrome 清除缓存(如果相关):
cmd + shift + R
您现在应该能够更新您的 css 文件并在您的本地主机上看到即时更改,只需重新加载页面
请勿在终端中运行“rake assets:precompile”,因为它会在“public”文件夹中重新创建文件夹“assets”,您将无法看到 css 文件的更新直接在您的本地主机中
【讨论】:
rake assets:precompile 只是为了测试一切是否在生产中正常工作。然后我花了 3 个小时寻找这个解决方案。谢谢!
万一以后的 Google 员工发现了这个帖子:我在 Rails 4.2.8 应用程序的测试环境中遇到了同样的问题。上述解决方案均无效。在config/environments/test.rb 中设置config.serve_static_files = false 解决了它。
请记住,这是一个临时修复,因为它会导致不再提供 public 文件夹中的所有文件(包括 404.html、favicon.ico、robots.txt 等)。
【讨论】: