Flask обслуживает файлы c с другим путем после косой черты - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь получить доступ к странице с помощью Flask, но файлы * stati c не обслуживаются.

@app.route('/hello/', 
methods=['GET','POST'])
def hello:
    return render_template('hello.html')

Я получаю приветную страницу. html в браузере, но все данные c путь к файлам изменился на localhost: 5000 / hello / stati c ... Но если я изменю на:

@app.route('/hello')

Файлы stati c будут обслуживаться правильно , Таким образом, всякий раз, когда у меня есть какой-либо маршрут с переадресацией sla sh, он изменяет обслуживаемые файлы stati c, то есть файлы

@app.route('/editFile/<int:id>')

Stati c меняются и обслуживаются по новому пути localhost: 5000 / editFile / static /... Маршруты с / после заставляют искать все stati c файлы с неправильными путями

Если no / is добавляется после маршрута, тогда stati c файлы загружаются корректно

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Если вы хотите добавить sla sh после маршрута, подобного этому /hello/, то при доступе к файлу stati c вы должны использовать эту url_for('static',filename = 'file') Конечная точка stati c используется для получения stati c files

0 голосов
/ 03 мая 2020

Вам необходимо добавить sla sh к следующим маршрутам:

@app.route('/hello')

и:

@app.route('/editFile/<int:id>')

Это должно дать ожидаемое поведение.

As примечание: если вы также добавите конечный sla sh, например:

@app.route('/test/')

, то запрос к /test/ вернет ответ, а запрос к /test вернет 308 перенаправить на /test/:

$ curl http://localhost:5009/test/  
response%

$ curl -i http://localhost:5000/test
HTTP/1.0 308 PERMANENT REDIRECT
Location: http://localhost:5000/test/

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL:
<a href="http://localhost:5009/test/">http://localhost:5000/test/</a>.  If not click the link.%   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...