我的app / assets目录中的javascripts和stylesheets目录与任何普通的Rails应用程序一样。
但是,我想要一个插件目录。
示例:
app/assets/plugins/myPlugin1/somefile.js
app/assets/plugins/myPlugin1/somefile.css
事情是,如果我使用
<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>
我会得到404错误,如
/assets/javascripts/plugins/myPlugin1/somefile.js
不存在。那时我注意到了#34;插件&#34; dir试图在javascripts中访问。我认为这与&#34; javascript_include_tag&#34;。
有关经过一些研究,我意识到我必须将这一行包含在config / application.rb
中config.assets.paths << Rails.root.join("app", "assets")
它似乎有效。在WEBRick上,在开发方面,它的工作非常精彩。
现在我已成功部署到服务器,预编译资产,并认为我已准备就绪。
目录
/public/assets/
已创建。一切都在&#34; app / assets / javascripts&#34;,&#34; app / assets / stylesheets&#34;和&#34; app / assets / plugins&#34;被预编译为公共/资产
做了什么
app/assets/javascripts/login.js
能够在具有
的视图中访问<%= javascript_include_tag 'login.js' %>
做什么工作
属于&#34;插件&#34;。
的文件app/assets/plugins/myPlugin1/somefile.js
预编译为
public/assets/myPlugin1/somefile.js
但是当我跑步时
<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>
它试图访问
/javascripts/plugins/myPlugin1/somefile.js
根据我的发展经验,正确的道路将是:
/myPlugin1/somefile-(some hex hash).js
所以,正如你所看到的,在制作中我遇到了与我没有添加时相同的问题
config.assets.paths << Rails.root.join("app", "assets")
到application.rb
可能是什么问题?
答案 0 :(得分:1)
你可以这样:
event.preventDefault();
或者逐个设置每个插件,如:
Dir.glob("#{Rails.root}/app/assets/plugins/**/").each do |path|
config.assets.paths << path
end
但是如果你有子目录,myPlugin目录就不会加载每个文件。所以第一个选项对你来说可能更好。