我有一个博客引擎并添加到Rails应用程序:
添加 public 文件夹和文件JS到引擎:
public
\ public\sliderEngine\amazingslider.js(公共\sliderEngine\amazingslider.js)
engine.rb
class Engine < ::Rails::Engine isolate_namespace Blorgh initializer "static assets" do |app| app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public") end end
.gemspec
s.files=dir[“app,config,db,lib,public/**/*”,“mit-license”, “rakefile”,“readme.md”]
index.html.erb
<script src="sliderengine/amazingslider.js"></script>
结果:运行Rails应用程序时出错:
GET http://localhost:3000/blog/sliderengine/amazingslider.js 404 (Not Found)
如何在Rails引擎中使用[Public]文件夹?
您必须将引擎的公用文件夹复制到Rails应用程序的公用/博客文件夹中。
嗯,我是这样做的:
把JS放在引擎的资产文件夹中(我把它放在引擎名下面):
app/assets/javascripts/blorgh/amazingslider.js
然后在发动机中添加:
#blorg/app/assets/javascripts/blorgh.js //= require_tree ./blorgh
然后在应用程序中
#application.js //= require blorgh