Ruby on rails Rails引擎&x27;主机应用程序中未提供的s静态资产

Ruby on rails Rails引擎&x27;主机应用程序中未提供的s静态资产,ruby-on-rails,rails-engines,Ruby On Rails,Rails Engines,我正在研究Rails引擎。该引擎在其public文件夹中包含一些静态JS/CSS,我希望这些资产合并到宿主应用程序中并由宿主应用程序提供服务 我将此添加到我的engine.rb文件中: initializer "static assets" do |app| app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public") end 有趣的是,当我在Rails引

我正在研究Rails引擎。该引擎在其
public
文件夹中包含一些静态JS/CSS,我希望这些资产合并到宿主应用程序中并由宿主应用程序提供服务

我将此添加到我的
engine.rb
文件中:

initializer "static assets" do |app|
  app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public")
end
有趣的是,当我在Rails引擎本身中运行虚拟应用程序,或者通过
path
在文件系统上的单独应用程序中安装引擎时:

gem 'my-engine', path: '~/my-engine`
一切正常。但一旦我发布到RubyGems并通过

gem 'my-engine'
静态资产全部为404


关于如何诊断有什么想法吗?在主机应用程序中,我还需要做什么来确保静态资产被拉入并得到服务?这不是一个生产环境,因为它甚至在开发中都不起作用。

我忘记了
public
我的
中的文件配置选项。gempec

Gem::Specification.new do |s|
  ..
  s.files = Dir["{app,config,db,lib,public}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]

现在一切都好了

这是什么版本的rails?Rails 4?我编辑engine.rb和.gempec,但它仍然显示错误:404(未找到)。我错过了任何设置吗?