在预编译资产之后,Rails不在开发中编译样式表

时间:2014-07-03 22:36:55

标签: css ruby-on-rails-4 asset-pipeline stylesheet

我在我的控制台中运行了命令rake assets:precompile,当我转到localhost:3000时,我的样式表在我的application.css文件中停止编译...

之前,在开发模式下一切都很完美:编写样式表,在application.css文件中需要它,然后查看我视图中显示的样式。所以资产管道“习惯”工作。

我尝试使用SOF上的其他答案使其工作(并失败):

  1. config / application.rb 中,我添加了config.assets.enabled = true
  2. config / development.rb 中的
  3. 我添加了以下内容:

    • config.serve_static_assets = false以便Rails不会在public / assets文件夹中查找我的样式表
    • config.assets.compress = false
    • config.assets.debug = true查看正在加载的css的痕迹
    • config.assets.compile = true
  4. 我删除了在运行public/assets后创建的rake assets:precompile文件夹 - 删除文件夹的另一种方法是运行命令bundle exec rake assets:clobber,但这并没有解决问题

  5. 我删除了tmp/cache文件夹
  6. 每次尝试序列1到4
  7. 时重启我的服务器并清除浏览器缓存
  8. 尝试在application.css
  9. 中更改我需要样式表的顺序

    无济于事......

    我也有以下设置

    1. application.html.erb

      <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>

    2. application.css

      * =自我要求

      * = require_tree。

      * =需要自定义

      * =需要侧边栏

      * = require flags / basic

      * = require flags / flags16

      * = require flags / flags32

      * = require font-awesome.min

    3. 在浏览器的application.css中我看到了:

      enter image description here

      为什么我的rake assets:precompile会在开发模式下破坏我的资产管道?在此先感谢您的帮助,我花了至少5个小时试图解决这个问题并相信我已尽我所能找到解决方案......

2 个答案:

答案 0 :(得分:6)

预编译资产将取代未编译的资产。记录的清除方法是bundle exec rake assets:clobber。在Rails 3中,所有这一切都是删除assets文件夹。也许在Rails 4中它更广泛(我没有在这里安装测试)。试一试。

请注意,如果您使用了以下环境限定符:

RAILS_ENV=production bundle exec rake assets:precompile

要预编译,请使用相同的限定符来删除。

然而,另一件可以打败你的是浏览器缓存。从浏览器缓存中清除所有。理想情况下尝试完全不同的浏览器。我浪费了一天,想知道Safari需要选择 Safari | 重置... 以清除所有内容。

答案 1 :(得分:0)

删除您的公共/资产文件并重新启动服务器,您将重新启动并运行资产:在

之后再次预编译