【问题标题】:Rails engine's static assets not being served in host appRails 引擎的静态资产未在主机应用程序中提供
【发布时间】:2015-01-24 16:58:49
【问题描述】:

我正在研究 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。

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

【问题讨论】:

  • 这是什么版本的rails?轨道 4?

标签: ruby-on-rails rails-engines


【解决方案1】:

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

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

现在一切正常!

【讨论】:

猜你喜欢
  • 2013-08-28
  • 2022-11-10
  • 1970-01-01
  • 2019-09-05
  • 2012-05-11
  • 2011-09-21
  • 1970-01-01
  • 2015-07-19
  • 2023-03-15
相关资源
最近更新 更多