Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 关于供应商文件夹的混淆_Ruby On Rails - Fatal编程技术网

Ruby on rails 关于供应商文件夹的混淆

Ruby on rails 关于供应商文件夹的混淆,ruby-on-rails,Ruby On Rails,首先,我设置了以下链轮目录: application.js //= require jquery //= require jquery_ujs //= require turbolinks //= require_tree . application.css *= require_self *= require_tree . 但是,在供应商中有一个简单的测试文件 console.log('I\'ve been loaded,baby!'); 不是由链轮加载的吗?若我将其移动到app/ass

首先,我设置了以下链轮目录:

application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
application.css

*= require_self
*= require_tree .
但是,在供应商中有一个简单的测试文件

console.log('I\'ve been loaded,baby!');
不是由链轮加载的吗?若我将其移动到app/assets/js中,那个么它就可以工作了,但不在vendor中。我需要设置什么指令才能工作?是否必须单独要求它们

即使在开发中我也需要预编译吗

此外,
供应商
中没有
图像
目录。许多第三方脚本都带有演示图像。实际上,我更喜欢在
vendor/images
中使用它们,而不是
app/assets/images
。可以按照Rails指南进行设置吗?

管道资产可以放在应用程序中的三种方式之一 位置:应用程序/资产、库/资产或供应商/资产

确保将资产放置在上述位置之一

回答您的问题:

若我将其移动到app/assets/js中,那个么它就可以工作了,但不在vendor中

由于
application.js
中指定了
require_tree
指令,该指令加载当前目录(属于
application.js
)中的所有javascript文件,即
app/assets/javascripts

//= require_tree .
上述指令没有从
vendor/assets/javascripts
加载javascript文件,这就是它在
vendor
中不起作用的原因

我需要设置什么指令才能工作?是否必须单独要求它们

是的,您必须在
application.js
中明确要求它们

假设您有
vendor/javascripts/abc\u vendor.js
vendor/stylesheets/abc\u vendor.css

然后在
application.js
中,您必须添加

//= require abc_vendor
application.css中

*= require abc_vendor
许多第三方脚本都带有演示图像。实际上,我更喜欢在供应商/图片中使用它们,而不是在应用程序/资产/图片中使用它们。可以 这是设置吗

对。它可以设置。只需在
vendor/assets
目录中创建文件夹
images
。在该文件夹中添加供应商图像。假设您在
vendor/assets/images
目录中添加了
abc\u logo.jpg
。重新启动服务器。并通过以下方式访问图像:

<%= image_tag "abc_logo.jpg" %>

如果您从Rails 3升级,请考虑lib/assets或vendor/assets下的资产可通过应用程序清单包含,但不再是预编译数组的一部分。请参阅预编译资源以获取指导。