Ruby on rails 关于供应商文件夹的混淆
首先,我设置了以下链轮目录: application.jsRuby 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
//= 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下的资产可通过应用程序清单包含,但不再是预编译数组的一部分。请参阅预编译资源以获取指导。