Используйте Rack :: Stati c, чтобы смонтировать каталог за пределами каталога проекта. - PullRequest
0 голосов
/ 27 января 2020

Я создаю Rails Engine, который включает в себя некоторые ресурсы, созданные через Webpacker, и я следую документации Webpacker по этому вопросу.

Я хотел бы распространить этот движок как gem и обслуживать ресурсы движка напрямую из самоцвета движка через промежуточное ПО Rack::Static в хост-приложении.

Вот что я пытаюсь:

# in the engine project: lib/my_engine/engine.rb
module MyEngine
  class Engine < ::Rails::Engine
    (...)
    config.app_middleware.use(
      Rack::Static,
      urls: ['/myengine'], root: File.join(__dir__, 'public')
    )
  end
end

Если я установите для параметра root: для Rack::Static относительный путь (например, my_engine/public), а затем создайте символическую ссылку в хост-проекте на соответствующий каталог в геме, это будет работать, однако приведенный выше код, который генерирует абсолютный путь, не работает.

Что я могу сделать, чтобы это исправить?

1 Ответ

1 голос
/ 09 апреля 2020

root: MyEngine :: Engine. root .join ("publi c")

...