Sam*_*off 5 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
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我在Rails引擎中运行虚拟应用程序时,或者通过path以下方式将引擎安装在我的文件系统上的单独应用程序中:
gem 'my-engine', path: '~/my-engine`
Run Code Online (Sandbox Code Playgroud)
一切正常.但是,一旦我发布到RubyGems并通过其他应用程序安装
gem 'my-engine'
Run Code Online (Sandbox Code Playgroud)
静态资产全部404.
关于如何诊断的任何想法?在主机应用程序中还有什么我需要做的,以确保静态资产被拉入+服务吗?它不是生产环境的东西,因为它甚至不能用于开发.
我忘记了public我的文件配置选项.gemspec:
Gem::Specification.new do |s|
..
s.files = Dir["{app,config,db,lib,public}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]
Run Code Online (Sandbox Code Playgroud)
现在一切正常了!
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |