Rails资产不会更新

时间:2012-03-09 21:35:23

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline

我有一个Rails 3.1应用程序,由于某种原因,当我更改CSS时,更改不会显示。我做了bundle exec rake assets:precompile并且它曾经帮助了一次,但是现在我无论如何都坚持使用旧的CSS。

6 个答案:

答案 0 :(得分:14)

由于您的资产现已预编译,因此需要使用以下

进行清理
bundle exec RAILS_ENV=development rake rails_group=assets assets:clean

答案 1 :(得分:5)

您可能想尝试rake资产:清理然后耙资产:预编译

答案 2 :(得分:5)

对于我的生产环境,我必须结合上面的一些步骤来重新编译我的资产。

首先我必须这样做:

rake assets:clean

确保我在合适的环境中

然后我需要删除预编译创建的public/assets目录(或者只删除需要修复的文件,例如application-<hash>.css

然后终于重新运行

rake assets:precompile

然后重新启动我的apache服务器(我使用带apache的乘客,未使用nginx进行测试)

答案 3 :(得分:3)

对我来说,只是从公共目录中删除已编译的css / js文件。

事实证明,其他开发者把它放在那里并且不让任何人知道。

答案 4 :(得分:2)

在rails,chrome,mac中对我有用的东西:

1 - 在终端:

rake assets:clean

2 - 在Sublime文本或Finder中:

删除“公开&gt;资产”文件夹

3 - 在终端启动localhost服务器:

rails s

4 - 在chrome:

http://localhost:3000/

5 - 重新加载铬清除缓存(如果相关):

cmd + shift + R

您现在应该可以更新您的css文件,只需重新加载页面即可立即查看您的localhost上的更改

请勿在终端中运行“rake assets:precompile”,因为它会在“public”文件夹中重新创建文件夹“assets”,您将无法看到css文件的更新直接在你的localhost

答案 5 :(得分:0)

如果未来任何Google员工发现此帖子:我在Rails 4.2.8应用程序的测试环境中遇到了同样的问题。以上解决方案均无效。在config.serve_static_files = false中设置config/environments/test.rb解决了它。

请记住,这是一个临时修复,因为它会导致public文件夹中的所有文件不再提供(包括404.html,favicon.ico,robots.txt等)。