4

我想要的非常简单——我想要预编译除特定 css 文件(引用图像资产,因此需要通过资产管道)之外的所有资产。如何从预编译中排除该 css 文件?

4

2 回答 2

-1

根据您的需要,有几个可能的答案。我不太确定你在问什么。

如果它在 app/assets 中,那么您确实需要其中的任何内容才能通过资产管道可用。在生产中,您需要预编译作为资产管道一部分的所有资产——并且每当它们发生变化时都需要在生产模式下重新预编译。

如果资产名称没有scsssass后缀,它将不会通过 scss/sass 编译器,尽管它仍会通过资产管道以在文件名中进行指纹识别、gzip 等。

如果您真的根本不希望资产通过资产管道那么您就不能真正将其放入app/assets。你必须把它放进去public。然后它会变得混乱如何为其生成 URL,最好的方法是使用public_path + "/subdir/foo.css".

但我不确定这就是你要问的。如果您有一个引用图像路径的资产文件,通常您确实需要通过资产管道,绝对!因为资产管道将为这些图像资产正确填写 URL。您需要在资产文件中使用 Rails 的asset_path 帮助程序来生成图像的 URL。您可以.erb在文件末尾添加一个,然后使用 ERB 代码<%= asset_path('my_asset.css') %> in it it. Or if it's sass,asset_path` 可能已经内置到 rails sass 中,我忘记了。

我不完全了解您到底遇到了什么问题,但我认为您所要求的可能实际上并不是您所需要的。您是否查看过 Rails 资产管道指南?这是相当体面的。http://guides.rubyonrails.org/asset_pipeline.html

于 2012-11-04T21:47:22.717 回答
-1

听起来您实际上想要一个与其他文件分开预编译的文件?

如果是这样,您只需将其添加到Rails.application.config.assets.precompile数组中。以config/initializers/assets.rb注释行为例。

于 2016-09-01T21:59:56.703 回答