Rails引擎的静态资产未在主机应用程序中提供

时间:2015-01-24 16:58:49

标签: 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引擎中运行虚拟应用程序时,通过path将引擎安装在我的文件系统上的单独应用程序中:

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

安装在另一个应用程序中
gem 'my-engine'

静态资产全部为404。

有关如何诊断的任何想法?在主机应用程序中还有什么我需要做的,以确保静态资产被拉入+服务吗?它不是生产环境的东西,因为它甚至不能在开发中工作。

1 个答案:

答案 0 :(得分:4)

我忘了public .gemspec中的文件配置选项:

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

现在一切正常!