2016-11-21 2 views
0

Файл index.html является статическим, и, следовательно, было бы расточительно передавать его через render_template(). Если я store index.html under static/ и используйте app = Flask(__name__), все хорошо.Как использовать иерархию каталогов с плоским флагом?

Но если я указываю static_url_path='' к корню и держать index.html в той же папке, что и приложение Python, я получаю

127.0.0.1 - - [21/Nov/2016 14:35:54] "GET/HTTP/1.1" 404 - 

index.html

<!DOCTYPE html> 
<head></head> 
<body> 
    <h2>Hello, World!</h2> 
</body> 

.py

from flask import Flask, current_app 
app = Flask(__name__, static_url_path='') 

@app.route('/') 
def hello_world(): 
    return current_app.send_static_file('index.html') 

if __name__=="__main__": 
    app.run() 

Как использовать полностью плоскую иерархию каталогов, сохраняя два файла выше в одном каталоге?

+0

я бы отговорить вас от обслуживания статических страниц через Колба, если это все, что вам нужно сделать. Загляните в 'static_folder', а не' static_url_path'. См. [Этот пост] (http://stackoverflow.com/a/20648053/3261863) для 'send_from_directory', который может вам пригодиться, так как вам не нужно сбивать ваши статические настройки, вне страниц. –

ответ

0

Я думаю, вам нужно установить static_folder, а не status_url_folder и указать абсолютный путь к папке, а не просто пустую строку.

Вы можете просмотреть статический путь к папке по умолчанию с print(app.static_folder)

0

Вы могли бы просто использовать flask.send_file():

import flask 

app = flask.Flask(__name__) 


@app.route('/') 
def hello_world(): 
    return flask.send_file('index.html') 

if __name__ == '__main__': 
    app.run() 
Смежные вопросы