我正在使用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。
有关如何诊断的任何想法?在主机应用程序中还有什么我需要做的,以确保静态资产被拉入+服务吗?它不是生产环境的东西,因为它甚至不能在开发中工作。
答案 0 :(得分:4)
我忘了public
.gemspec
中的文件配置选项:
Gem::Specification.new do |s|
..
s.files = Dir["{app,config,db,lib,public}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]
现在一切正常!