如何更改 Rails 编译资产的位置
How to change location of Rails compiled assets
我正在努力将 javascript 库集成到 rails 资产管道中。
javascript 期望 fonts/
和 images/
文件夹在根级别可用,但我认为 Rails 正在将它们预编译为 assets/fonts/
和 assets/images
。
我认为是这种情况的原因是,如果我将 fonts
和 images
文件夹直接放入 public
文件夹,一切正常。
但是如果我将 fonts
和 images
放在 apps/assets/fonts
和 apps/assets/images
中,请求的字体会出现 javascript returns 404 错误和图片。
Rails 配置中有什么地方可以告诉 Rails 将这些字体和图像文件夹预编译为 public/
而不是 public/assets/
?
您应该在您的案例中使用资产管道助手,特别是因为指纹字符串将附加到资产名称。
这样做:
1.change 对 font/image 文件的引用
使用 asset helper
<%= asset_path 'fontFileNameAndExtension' %>
<%= image_path 'imageFileNameAndExtension' %>
2.change 您的 .js
文件的扩展名 .js.erb
3.include 将您的 js
文件的名称转换为 application.js
as
//= require YourJsFileName
4.execute再次预编译,你可能想先清理编译后的资源:
rake assets:clobber
rake assets:precompile
我正在努力将 javascript 库集成到 rails 资产管道中。
javascript 期望 fonts/
和 images/
文件夹在根级别可用,但我认为 Rails 正在将它们预编译为 assets/fonts/
和 assets/images
。
我认为是这种情况的原因是,如果我将 fonts
和 images
文件夹直接放入 public
文件夹,一切正常。
但是如果我将 fonts
和 images
放在 apps/assets/fonts
和 apps/assets/images
中,请求的字体会出现 javascript returns 404 错误和图片。
Rails 配置中有什么地方可以告诉 Rails 将这些字体和图像文件夹预编译为 public/
而不是 public/assets/
?
您应该在您的案例中使用资产管道助手,特别是因为指纹字符串将附加到资产名称。
这样做:
1.change 对 font/image 文件的引用
使用 asset helper
<%= asset_path 'fontFileNameAndExtension' %>
<%= image_path 'imageFileNameAndExtension' %>
2.change 您的 .js
文件的扩展名 .js.erb
3.include 将您的 js
文件的名称转换为 application.js
as
//= require YourJsFileName
4.execute再次预编译,你可能想先清理编译后的资源:
rake assets:clobber
rake assets:precompile