ruby-on-rails - 使用 Rack::Static 在项目目录之外挂载一个目录
问题描述
我正在构建一个 Rails 引擎,其中包含一些通过 Webpacker 构建的资产,并且我正在关注Webpacker 文档。
我想将此引擎作为 gem 分发,并通过Rack::Static
主机应用程序中的中间件直接从引擎的 gem 提供引擎的资产。
这就是我正在尝试的:
# 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
:),然后在宿主项目中创建指向 gem 中相关目录的符号链接,这将起作用,但是上面生成绝对路径的代码不起作用。
我能做些什么来解决这个问题?
解决方案
根:MyEngine::Engine.root.join("public")
推荐阅读
- python - 从元组列表中生成所有可能的路径
- android - java.lang.Throwable:无法确定要执行的 gradle 任务
- ios - 连续追加到数组的末尾
- node.js - 节点承诺 - 控制台打印嵌套但不能从 firebase 函数返回值
- javascript - 请问有人可以批评这张邮票卡密码笔吗?
- javascript - 如何通过纯 JavaScript 自动调整博客图片大小?
- google-sheets - 从最小值获取列标题,不包括零
- powershell - 如何从来自文件的多个开始时间和结束时间获取时差?
- c++ - 编译 opencv4 基本程序时出现链接错误?
- javascript - 我是正确地链接 Promise 还是犯了罪?