如何更改 Rails 编译资产的位置

How to change location of Rails compiled assets

我正在努力将 javascript 库集成到 rails 资产管道中。

javascript 期望 fonts/images/ 文件夹在根级别可用,但我认为 Rails 正在将它们预编译为 assets/fonts/assets/images

我认为是这种情况的原因是,如果我将 fontsimages 文件夹直接放入 public 文件夹,一切正常。

但是如果我将 fontsimages 放在 apps/assets/fontsapps/assets/images 中,请求的字体会出现 javascript returns 404 错误和图片。

Rails 配置中有什么地方可以告诉 Rails 将这些字体和图像文件夹预编译为 public/ 而不是 public/assets/

您应该在您的案例中使用资产管道助手,特别是因为指纹字符串将附加到资产名称。

这样做:

1.change 对 font/image 文件的引用

使用 asset helper

<%= asset_path 'fontFileNameAndExtension' %>

使用asset image helper

<%= image_path 'imageFileNameAndExtension' %>

2.change 您的 .js 文件的扩展名 .js.erb

3.include 将您的 js 文件的名称转换为 application.js as

//= require YourJsFileName

4.execute再次预编译,你可能想先清理编译后的资源:

rake assets:clobber
rake assets:precompile