如何在 Rails 引擎中使用 [public] 文件夹?
How can use [public] folder in Rails Engine?
我有一个博客引擎并添加到 Rails 应用程序:
将public
文件夹和文件js添加到引擎:
\public\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
中使用文件 js:
<script src="sliderengine/amazingslider.js"></script>
结果:当 运行 Rails App:
时发生错误
GET http://localhost:3000/blog/sliderengine/amazingslider.js 404 (Not Found)
如何在 Rails 引擎中使用 [public] 文件夹?
嗯。我是这样做的:
将js放在引擎的assets文件夹下(我放在引擎名下):
app/assets/javascripts/blorgh/amazingslider.js
然后在引擎中添加:
#blorg/app/assets/javascripts/blorgh.js
//= require_tree ./blorgh
然后在应用程序中
#application.js
//= require blorgh
您必须将引擎的 public 文件夹复制到 Rails App
的 public/blog 文件夹
我有一个博客引擎并添加到 Rails 应用程序:
将
public
文件夹和文件js添加到引擎:\public\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
中使用文件 js:
<script src="sliderengine/amazingslider.js"></script>
结果:当 运行 Rails App:
时发生错误GET http://localhost:3000/blog/sliderengine/amazingslider.js 404 (Not Found)
如何在 Rails 引擎中使用 [public] 文件夹?
嗯。我是这样做的:
将js放在引擎的assets文件夹下(我放在引擎名下):
app/assets/javascripts/blorgh/amazingslider.js
然后在引擎中添加:
#blorg/app/assets/javascripts/blorgh.js
//= require_tree ./blorgh
然后在应用程序中
#application.js
//= require blorgh
您必须将引擎的 public 文件夹复制到 Rails App
的 public/blog 文件夹