首先,我设置了以下链接目录:
的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然后工作,但不是在供应商。我需要设置哪些指令才能使其正常工作?他们必须单独要求吗?
即使在开发中我是否需要预编译?
此外,images
中没有vendor
目录。许多第三方脚本都有演示图像。我实际上更喜欢vendor/images
而不是app/assets/images
。可以设置吗?
答案 0 :(得分:1)
根据Rails指南
管道资产可以三个中的一个放在应用程序中 位置:app / assets,lib / assets或vendor / assets
确保将资产置于上述其中一个位置。
回答您的疑问:
如果我把它移到app / assets / js那就可以了,但不是在供应商那里。
它在那里工作是因为require_tree
中指定的application.js
指令加载了当前目录(application.js
)中存在的所有javascript文件,即app/assets/javascripts
//= require_tree .
以上指令不会从vendor/assets/javascripts
加载javascript文件,这就是vendor
无效的原因。
我需要设置哪些指令才能使其正常工作?他们必须单独要求吗?
是的,您必须明确要求application.js
。
假设您有vendor/javascripts/abc_vendor.js
和vendor/stylesheets/abc_vendor.css
然后在application.js
中你必须添加
//= require abc_vendor
并在application.css
*= require abc_vendor
许多第三方脚本都带有演示图像。我实际上更喜欢他们在供应商/图像而不是app / assets / images。能够 这可以设置吗?
是。它可以设置。只需在images
目录中创建文件夹vendor/assets
即可。在该文件夹中添加供应商图像。假设您在abc_logo.jpg
目录中添加了vendor/assets/images
。重启服务器。并访问图像:
<%= image_tag "abc_logo.jpg" %>