【发布时间】:2019-09-12 06:28:31
【问题描述】:
我正在关注如何部署到 Heroku:https://docs.apostrophecms.org/apostrophe/tutorials/howtos/deploying-apostrophe-in-the-cloud-with-heroku
由于我使用 Heroku 的 mLab 插件来处理我的 Mongo,因此我有点偏离了 HOWTO。另外,我暂时跳过了 S3 设置,因为我只是想让它运行起来。我不确定这对于适当交付资产是否非常重要。
我已经完成了 HOWTO 中的以下内容:
- 在 Heroku 中创建了一个项目
- 将其添加到我的 git 存储库中作为
heroku作为远程 - 添加了 mLab 插件并创建了一个数据库,并添加了指向该数据库 uri 的环境变量。
- 为
APOS_BUNDLE=1和APOS_MINIFY=1添加了环境变量 - 在 /scripts 目录以及 Procfile 中添加了 heroku-release-scripts 可执行文件。
这是我./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
【问题讨论】:
-
我还可以补充一点,当构建和部署发生时,我在 heroku 日志中看不到任何明显的内容。
-
我怀疑问题是我们错过了您尚未设置 s3 的边缘情况的细节,即使这是成功上传工作所必需的。在这种情况下,路径应该会有所不同,但实际上将事物留在大多数实际用途中并不是一种可持续的状态。我会开一张关于这个边缘案例的票。
-
实际上,我什至可以说它的行为符合预期——如果你实际上有一个工作的 uploadfs 配置(s3 或其他对你的所有 heroku dynos 可见的后端),它会工作正常。我将更新文档以明确此步骤是强制性的。
-
@TomBoutell 这完全有道理。在设置 s3 时,文档说您需要设置四个 evnvironment var、APOS_S3_BUCKET、APOS_S3_SECRET、APOS_S3_KEY 和 APOS_S3_REGION。 Secret 和 Key 的值是我的根 AWS 用户的访问密钥吗?
-
您可以使用您的根密钥,是的,但亚马逊肯定会恳求您创建一个 IAM 用户和一个 IAM 组,并创建一个仅允许访问存储桶的策略,这样被黑的服务器就不会这并不意味着人们可以完全按照自己的意愿创建 AWS 服务器(:虽然这有点痛苦,所以如果你一开始使用根密钥和秘密,我不会评判你。以下是有关更安全设置的信息:@ 987654323@
标签: apostrophe-cms