Heroku:如何将静态站点生成与 Python/Flask 集成
Heroku: How to integrate static site generation with Python / Flask
我是 运行 一个托管在 Heroku 上的 Flask 网站 https://www.example.org
,附带一个静态博客,https://www.example.org/blog
我是通过 Hugo 生成的,我正在寻找这个过程更有效率
根据我的研究,出于 SEO 原因,最好将博客放在子目录中。
我目前维护博客的工作流程如下:
- 在 Hugo 中编写 Markdown post
- 检查以在 Hugo 和 Flask 应用程序之间协调 css 等
- 生成静态 html 代码
- 修复 link 错误等
- 将静态输出从 hugo/public 文件夹移动到 flask_app/static/blog 文件夹
- 我正在使用
whitenoise
访问静态文件夹
- 部署到 Heroku --> https://www.example.org/blog 通过 Flask 服务
我意识到通过 Flask 提供静态内容的计算效率较低(这是可以接受的),但这现在不是主要问题。
但我确定一定有更好的方法?!
您可以 运行 网络服务器(例如 nginx)将您的流量路由到 Flask 网站或静态博客内容,而不是依赖 Flask 来提供您的静态博客内容。
用户请求 -> https://example.org -> nginx -> flask
用户请求 -> https://example.org/blog -> nginx -> 静态内容(托管在 nginx 服务器或其他位置)
您可以通过添加 Heroku Buildpack. There are third party open-source buildpacks for Hugo available on Github, e.g. roperzh/heroku-buildpack-hugo. Alternatively, you could use a Git hook 来自动执行第 3 步,以便在每次提交任何更改时构建博客。
您可以通过设置 baseURL
和 publishDir
Hugo configuration settings.
来避免第 4 步和第 5 步
我不确定第 2 步需要什么,但您的整体设置(6. 和 7.)似乎是合理的。
我是 运行 一个托管在 Heroku 上的 Flask 网站 https://www.example.org
,附带一个静态博客,https://www.example.org/blog
我是通过 Hugo 生成的,我正在寻找这个过程更有效率
根据我的研究,出于 SEO 原因,最好将博客放在子目录中。
我目前维护博客的工作流程如下:
- 在 Hugo 中编写 Markdown post
- 检查以在 Hugo 和 Flask 应用程序之间协调 css 等
- 生成静态 html 代码
- 修复 link 错误等
- 将静态输出从 hugo/public 文件夹移动到 flask_app/static/blog 文件夹
- 我正在使用
whitenoise
访问静态文件夹 - 部署到 Heroku --> https://www.example.org/blog 通过 Flask 服务
我意识到通过 Flask 提供静态内容的计算效率较低(这是可以接受的),但这现在不是主要问题。
但我确定一定有更好的方法?!
您可以 运行 网络服务器(例如 nginx)将您的流量路由到 Flask 网站或静态博客内容,而不是依赖 Flask 来提供您的静态博客内容。
用户请求 -> https://example.org -> nginx -> flask
用户请求 -> https://example.org/blog -> nginx -> 静态内容(托管在 nginx 服务器或其他位置)
您可以通过添加 Heroku Buildpack. There are third party open-source buildpacks for Hugo available on Github, e.g. roperzh/heroku-buildpack-hugo. Alternatively, you could use a Git hook 来自动执行第 3 步,以便在每次提交任何更改时构建博客。
您可以通过设置 baseURL
和 publishDir
Hugo configuration settings.
我不确定第 2 步需要什么,但您的整体设置(6. 和 7.)似乎是合理的。