我想为我的静态目录中的所有文件夹设置flask的index.html。
tree
显示以下内容:
static/
├── contact
│ └── index.html
├── index.html
└── notoken
└── index.html
我希望/notoken
或/contact
显示/notoken/index.html
和/contact/index.html
中的内容。
P.S:我不想使用render_template或send_from_directory或类似的东西来提供它们,因为我不想为每个单个文件/文件夹执行此操作
答案 0 :(得分:1)
编写捕获路径的视图。在该路径下提供index.html
文件。不存在的路径将为404。
@app.route('/pages/')
@app.route('/pages/<path:path>')
def page(path=''):
html = os.path.join(path, 'index.html')
return app.send_static_file(html)
使用url_for
生成网址。您只能在模板中调用它,而不能在静态文件中调用它。
url_for('page', path='contact')
# /page/contact
添加page
前缀以区别于其他网址,否则可能会发生冲突,因为path
本质上是一个通配符匹配。