CSS 将 Apostrophe CSM 部署到 Heroku 时找不到 JS 资产

CSS and JS assets not being found when deploying Apostrophe CSM to Heroku

我正在关注部署到 Heroku 的 HOWTO:https://docs.apostrophecms.org/apostrophe/tutorials/howtos/deploying-apostrophe-in-the-cloud-with-heroku

由于我使用 Heroku 的 mLab 附加组件来处理我的 Mongo,因此我有点偏离 HOWTO。另外,我暂时跳过了 S3 设置,因为我只是想把事情搞定 运行。我不确定这对正确交付资产是否非常重要。

我已经完成了 HOWTO 中的以下内容:

这是我的代码 ./scripts/heroku-release-scripts

#!/bin/bash

node app apostrophe:generation
node app apostrophe-migrations:migrate

这是 Procfile

web: node app
release: ./scripts/heroku-release-tasks

值得注意的一件事;如果我查看 CSS 和 JS 资产的路径,它会看到类似这样的内容

https://van-biema-partners.herokuapp.com/uploads/assets/ck0fmqn3i00050uuck7exy3v2/apos-minified/anon-ck0fmqn3i00050uuck7exy3v2.js

我不确定这是否正确,但也许是...

编辑

复制上面的URL并去掉'/uploads/assets/ck0fmqn3i00050uuck7exy3v2'部分,我可以看到CSS和JS。不确定路径是怎么回事,但这似乎是问题所在,但我不知道如何纠正它。 https://van-biema-partners.herokuapp.com/apos-minified/anon-ck0fmqn3i00050uuck7exy3v2.css

问题是新的、简化的 APOS_BUNDLE=1 功能严格要求您有一个持久的 uploadfs 后端——换句话说,它要求您设置 S3,甚至要成功使用资产 URL。

由于这在任何情况下都是媒体上传工作所必需的,因此我已修复您阅读的文档以解决此要求。我还删除了关于 --sync-to-uploadfs 选项的令人困惑的剩余部分,不再需要将资产复制到 S3;这部分导致了令人困惑的印象,即 S3 可能不是强制性的。

(严格来说不一定是Amazon S3。Apostrophe 的uploadfs 模块除了支持替代S3 实现外,还支持Azure blob 存储和Google 的云存储。uploadfs 文档有更多关于那个主题。真正需要的是 heroku 临时文件系统以外的其他地方来存储东西,因为这些东西不是持久的,也不是所有 dynos 都可以看到相同的文件。)