构建过程中创建样式表资产(例如 /stylesheets/color_definitions_dark_1_1_603243e2b6c0b7xydx234the00538538bd705.css)的流程是什么?
我猜这是打包(bundling)的过程?
如果这些文件丢失,可能是什么原因?
这些文件应该在启动 ember-cli 或 rails 服务器时就开始存在吗?
我应该采取什么方法来从标准的 discourse 镜像在 docker 中构建这些文件,还是仅仅启动服务器就应该期望它们存在?
1 个赞
david
(David Taylor)
2
样式表由 rails 应用程序按需构建,因此理论上您无需手动执行任何操作。
运行 bin/rake assets:precompile 将会预编译它们,如果您想为部署到多个主机创建优化的 docker 镜像,这会很有用。
4 个赞
pfaffman
(Jay Pfaffman)
4
啊哈!我一直对此感到好奇。
如果它们在 S3 上并且是按需编译的,它们也会被上传到 S3 吗?
2 个赞
david
(David Taylor)
5
按需编译的资源(例如,样式表、主题 JavaScript、SVG 精灵)不会上传到 S3。它们直接从应用程序获取(或者,如果配置了 CDN_URL,则通过 CDN_URL 获取)。
像核心/插件 JS 和区域设置这样的静态内容由 assets:precompile 生成,并保证在运行时永远不会更改。
2 个赞
pfaffman
(Jay Pfaffman)
6
我明白了;这有助于解释为什么有些东西是由应用程序提供的。如果有多个容器在运行(例如,在负载均衡器后面),每个容器都会按需生成这些资源。
2 个赞
david
(David Taylor)
7
是的,没错。这些东西也倾向于缓存到 postgres/redis 中,因此它们只需要由接收到请求的第一个应用程序容器生成。其他容器可以从 redis/postgres 中廉价地获取编译后的版本并将其写入文件系统。
2 个赞
pfaffman
(Jay Pfaffman)
8
而且,如果存在CDN,那么他们甚至可能不需要这样做,我猜。
我正在与某人合作,他似乎在某些资源未加载(一些图标显示得非常大)方面遇到问题,我正在寻找一些解释。
2 个赞
system
(system)
关闭
9
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.