Flask с субдомена разрывает ссылки на ресурсы c - PullRequest
0 голосов
/ 16 марта 2020

Я добавил поддержку поддоменов:

  1. C: \ Windows \ System32 \ drivers \ etc \ hosts:
    127.0.0.1       subdomain.test.com
Flask config:
    SERVER_NAME = 'test.com:5005'
Чертеж:
@app_blueprint.route('/', methods=['GET'], subdomain='<subdomain_name>') 
def index(subdomain_name):
    return redirect(url_for('app.index'))

Он успешно находит маршрут, но при загрузке приложения-шаблона. html в браузер не может разрешить ресурс stati c:

Вместо

<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> 

и не может его найти.

Чего мне не хватает?

Обновить. Я обновил файл hosts в соответствии с ответом Шона. Но теперь 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 в браузере напрямую, но перенаправление не работает, и другие вещи также не могут быть найдены.

1 Ответ

1 голос
/ 16 марта 2020

Вам также необходимо добавить test.com к вашему /etc/hosts псевдониму:

127.0.0.1       subdomain.test.com  test.com

Вы сказали Flask, что вы смонтированы на test.com, и поэтому он смонтировал маршруты /static там ... но ваш сетевой уровень не знает, где находится test.com, потому что вы не сказали ему, где он живет.

...