在Flask中捕获子域名,但自定义域名托管在Heroku上

dvtswwa3  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(66)

基本上,我试图为我的网站捕捉子域(如www.example.comhelp.example.com).我按照解决方案的指示,如thisthis.出于某种原因,它标识为:

This site can’t be reached. Check if there is a typo in www.example.com.

字符串
总的来说,这是大多数答案所说的:
1.在Flask的decorator声明中使用subdomain="<subdomain>"参数。

  1. decompose服务器名称,即app.config['SERVER_NAME'] = "example.com:33507" N.B. ->我写了33507作为Heroku使用的端口。
    但即使执行了所有这些步骤,它仍然没有工作。
ni65a41a

ni65a41a1#

下面的Flask示例代码将响应一个名为“API”的子域,并提供修饰的api_index路由。注意,为了使此工作,我没有指定服务器名称config的端口。

from flask import Flask, jsonify

app = Flask(__name__, subdomain_matching=True)
app.config['SERVER_NAME'] = "example.com"

@app.route("/")
def index():
    return "Welcome"

@app.route("/", subdomain="api")
def api_index():
    return jsonify({"message": "Welcome"})

字符串
在Heroku中,您需要为您需要的每个子域添加一个自定义域。可以使用证书,但您必须提供自己的证书。
我刚刚用下面的Procfile在Heroku上成功地尝试了这个方法

web: gunicorn app:app --log-file=-


以及以下使用Pipenv的依赖项

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
flask = "*"
gunicorn = "*"

[dev-packages]

[requires]
python_version = "3.11"


如果这没有帮助,您可以编辑您的消息,以包括您的代码?

相关问题