Rails 5资产管道忽略某些文件夹

时间:2017-02-10 20:32:17

标签: sass asset-pipeline ruby-on-rails-5 sprockets

好的,所以我在Rails 5中忽略某些图像文件夹时遇到了一些问题。这里有什么相关信息:

app/assets
  javascripts/
  stylesheets/
    style1.scss
    style2.scss
  images/
    subfolder1/
    subfolder2/


config/initializers/assets.rb
  Rails.application.config.assets.precompile += %w( style1.css )
  Rails.application.config.assets.precompile += %w( style2.css )

config/environments/development.rb
  config.assets.debug = true

所以我遇到的问题是资产正在被指纹识别,并且仅从子文件夹1提供。我想我知道这是因为我可以进入Chrome开发人员工具,在sources选项卡下查看从style1.scss和style2.scss生成的已编译CSS文件。

在生成的CSS中,子文件夹1中的image-url标记如下所示:

background: url(/assets/subfolder1/image-106e9d1ebbbc3111ae3e5b153c81a7237b3d033ecdabad3e107e122c3b457ca5.jpg)

在同一个生成的CSS文件中,子文件夹2中的image-url标记如下所示:

background: url(/images/subfolder2/image.png)

来自子文件夹1的图像会被渲染,但子文件夹2中的图像永远不会被检索并生成404s。为什么scss to css转换只能正确翻译subfolder1中的图像?为什么在开发模式下完全是指纹识别?

1 个答案:

答案 0 :(得分:0)

在我的情况下,似乎我需要运行rake资产:清理以使其正确。谢谢Joel_Blum!