带有子域的 Flask 中断了指向静态资源的链接

Flask with subdomain breaks links to static resources

我添加了子域支持:

  1. C:\Windows\System32\drivers\etc\hosts:
    127.0.0.1       subdomain.test.com
  1. 烧瓶配置:
    SERVER_NAME = 'test.com:5005'
  1. 蓝图:
@app_blueprint.route('/', methods=['GET'], subdomain='<subdomain_name>') 
def index(subdomain_name):
    return redirect(url_for('app.index'))

它成功找到了路由,但是当它加载模板 app.html 到浏览器时它无法解析静态资源:

而不是

<script src="http://subdomain.test.com:5005/static/dist/app.bundle.js"></script> 

解析为

<script src="http://test.com:5005/static/dist/app.bundle.js"></script> 

找不到。

我错过了什么?

更新。我根据肖恩的回答更新了主机文件。但是现在 Flask 找不到我要重定向到的端点 "app.index"。

我指定为:

@app_blueprint.route('/app', methods=['GET'], subdomain='<subdomain_name>')
@app_blueprint.route('/app/<path:path>', methods=['GET'], subdomain='<subdomain_name>')
def index(path = None, subdomain_name=None):
    return render_template('app.html', subdomain_name=subdomain_name)

如果我直接在浏览器中使用 /app 可以命中此端点,但重定向不起作用,也找不到其他东西。

您还需要将 test.com 添加到您的 /etc/hosts 别名中:

127.0.0.1       subdomain.test.com  test.com

你告诉 Flask 你挂载在 test.com 上,所以它在那里挂载了 /static 路由......但是你的网络层不知道 test.com 在哪里,因为你还没有告诉它它住在哪里。