[英]Confusion about the vendor folder
首先,我设置了以下链轮目录:
的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
没有images
目录。 许多第三方脚本都带有演示图像。 我实际上更愿意在vendor/images
它们,而不是在app/assets/images
。 可以设置吗?
根据Rails指南
管道资产可以放在以下三个位置之一的应用程序内部:应用程序/资产,库/资产或供应商/资产
确保将资产放置在上述位置之一中。
要回答您的查询:
如果我将其移至app / assets / js可以使用,则不能在供应商中使用。
它在那里工作是因为在application.js
中指定了require_tree
指令,该指令加载了当前目录(属于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
许多第三方脚本都带有演示图像。 我实际上更愿意在供应商/图像中使用它们,而不是在应用程序/资产/图像中使用它们。 可以设置吗?
是。 可以设置。 只需在vendor/assets
目录中创建文件夹images
。 在该文件夹中添加供应商映像。 假设您在vendor/assets/images
目录中添加了abc_logo.jpg
。 重新启动服务器。 并以以下方式访问图像:
<%= image_tag "abc_logo.jpg" %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.