Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何更改Rails编译资产的位置_Ruby On Rails_Asset Pipeline - Fatal编程技术网

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

Ruby on rails 如何更改Rails编译资产的位置,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,我正在致力于将javascript库集成到rails资产管道中 javascript希望根级别有一个font/和images/文件夹,但我认为Rails正在将这些文件夹预编译为assets/font/和assets/images 我之所以认为是这样,是因为如果我将字体和图像文件夹直接放入公共文件夹,一切都会正常工作 但是如果我将字体和图像放在应用程序/资产/字体和应用程序/资产/图像中,javascript将为请求的字体和图像返回404个错误 在Rails配置中,我是否可以告诉Rails将这些字

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

javascript希望根级别有一个
font/
images/
文件夹,但我认为Rails正在将这些文件夹预编译为
assets/font/
assets/images

我之所以认为是这样,是因为如果我将
字体
图像
文件夹直接放入
公共
文件夹,一切都会正常工作

但是如果我将
字体
图像
放在
应用程序/资产/字体
应用程序/资产/图像
中,javascript将为请求的字体和图像返回404个错误


在Rails配置中,我是否可以告诉Rails将这些字体和图像文件夹预编译到
public/
而不是
public/assets/

在您的情况下,您应该使用资产管道帮助器,特别是因为资产名称后面会附加指纹字符串

为此:

1.将对字体/图像文件的引用更改为

使用

4.再次执行预编译,您可能希望首先清理已编译的资产:

rake assets:clobber
rake assets:precompile

这并没有说明javascript库如何知道如何在
资产/字体
资产/图像
中查找,而不是在它期望的
字体
图像
位置查找。我想这就是问题的症结所在。我建议您测试一下,rails 4+将使用asset helpers构建指向
字体
图像
文件夹中文件的链接,如我在回答中所述。谢谢你的建议。值得指出的是,我认为这是问题的根源。
<%= image_path 'imageFileNameAndExtension' %>
//= require YourJsFileName
rake assets:clobber
rake assets:precompile