我写了自己的动态路线是这样的:
@app.route('/')
@app.route('/<controller>')
@app.route('/<controller>/<action>')
@app.route('/<controller>/<action>/<id>') # <--- this route overrides
def main(controller = None, action = None, id = None):
我标记#
的地方,该路由会覆盖/static/css/filename.css
的默认行为,因为这是有效的路由。如何使用动态路线提供这些文件?
答案 0 :(得分:2)
嗯,你的root是非常通用的,基本上它抓住了所有东西(不是所有东西,但是你知道它匹配所有字符串和URL的结构)并且至少与其中一条规则匹配。因此,如果您希望保留规则服务静态文件,只需使用此@app.route('/static/css/')
之类的内容,此规则应该为将提供静态文件的视图提供服务。
但总的来说,我认为这不是一般的好方法。我想说看一下blueprints并在那些帮助下进行模块化应用。然后,您可以为每个蓝图定义URL开头,这样您就可以分离模块和路径。这种一般方法将来会引起越来越多的问题。但这是你的选择;)