Rails没有加载可安装引擎的js

Ton*_*ent 7 ruby-on-rails rails-engines asset-pipeline

我已经包含在安装导轨引擎Gemfile作为

gem 'my_engine', :path => 'engines/my_engine'
Run Code Online (Sandbox Code Playgroud)

并安装在主应用程序中

Rails.application.routes.draw do
  mount MyEngine::Engine => "/blog", as: 'blog_engine'
end
Run Code Online (Sandbox Code Playgroud)

app/engines/my_engine/app/assets/javascripts/my_engine/application.js我有

alert('hello');
Run Code Online (Sandbox Code Playgroud)

app/engines/my_engine/lib/my_engine/engine.rb我补充说

module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine

    # Append engine's migrations to root app's migrations
    initializer :append_migrations do |app|
      unless app.root.to_s.match root.to_s
        config.paths["db/migrate"].expanded.each do |expanded_path|
          app.config.paths["db/migrate"] << expanded_path
        end
      end
    end

    config.autoload_paths += Dir["#{config.root}/spec/support"]

    initializer "my_engine.precompile" do |app|
      app.config.assets.paths << Rails.root.join('/engines/my_engine/app/assets/javascripts')
      app.config.assets.precompile << "my_engine/application.js"
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

但是当我重新加载http://localhost:3000/blog警报消息时没有出现?我错过了什么?

lob*_*ati 5

您实际上还需要将JavaScript插入页面。您的博客代码中是否包含javascript_include_tagapplication.js文件?它通常被放入以下布局之一:

<%= javascript_include_tag 'my_engine/application' %>
Run Code Online (Sandbox Code Playgroud)