Rails资产不会更新

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

由于您的资产现在已预先编译,因此您需要使用以下内容清理它们

 bundle exec RAILS_ENV=development rake rails_group=assets assets:clean 

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

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

首先我必须这样做:

 rake assets:clean 

确保我在合适的环境中

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

然后终于重新运行

 rake assets:precompile 

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

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

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

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

1 – 在终端:

 rake assets:clean 

2 – 在Sublime文本或Finder中:

删除“公共>资产”文件夹

3 – 在终端启动localhost服务器中:

 rails s 

4 – 在chrome中:

 http://localhost:3000/ 

5 – 如果相关,重新加载铬清除缓存:

 cmd + shift + R 

您现在应该能够更新您的css文件,并在重新加载页面时查看您的localhost上的即时更改

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

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

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