代码之家  ›  专栏  ›  技术社区  ›  D T

如何在Rails引擎中使用[Public]文件夹?

  •  1
  • D T  · 技术社区  · 7 年前

    我有一个博客引擎并添加到Rails应用程序:

    1. 添加 public 文件夹和文件JS到引擎:

      \ public\sliderEngine\amazingslider.js(公共\sliderEngine\amazingslider.js)

    2. 编辑文件 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
    
    1. 编辑文件 .gemspec 发动机:

    s.files=dir[“app,config,db,lib,public/**/*”,“mit-license”, “rakefile”,“readme.md”]

    1. 在文件中使用JS文件 index.html.erb 发动机:
       <script src="sliderengine/amazingslider.js"></script>
    

    结果:运行Rails应用程序时出错:

    GET http://localhost:3000/blog/sliderengine/amazingslider.js 404 (Not Found)
    

    如何在Rails引擎中使用[Public]文件夹?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Bibo    7 年前

    您必须将引擎的公用文件夹复制到Rails应用程序的公用/博客文件夹中。

        2
  •  -1
  •   jvillian    7 年前

    嗯,我是这样做的:

    把JS放在引擎的资产文件夹中(我把它放在引擎名下面):

    app/assets/javascripts/blorgh/amazingslider.js
    

    然后在发动机中添加:

    #blorg/app/assets/javascripts/blorgh.js
    //= require_tree ./blorgh
    

    然后在应用程序中

    #application.js
    //= require blorgh
    
    推荐文章