09 Dec 2016
@app.route('/') def homepage(): return render_template("home.html")
@app.route('/html/<cat1>/<cat2>/<topic>') def content(cat1, cat2, topic): page = '/'.join(['/html', cat1, cat2, topic]) return render_template(page, TOPIC_DICT = TOPIC_DICT)
flask variable-rules route doc
后期调整网站目录结构,将上面的route改成了如下内容,去掉了”/home”
@app.route('/<cat1>/<cat2>/<topic>') def content(cat1, cat2, topic): page = '/'.join(['/html', cat1, cat2, topic]) return render_template(page, TOPIC_DICT = TOPIC_DICT)
发现static的css内容均无法加载,排查后发现,原来是因为访问css文件时url为”www.mydomain/static/css/somecss.css”
这样的话正好与上面的route匹配,然后我们render_template的文件是在templates目录下寻找,而static是在static目录下找,所以造成了template not found错误
进行下面修改,配置动态route仅对html文件有效
@app.route('/<cat1>/<cat2>/<topic>.html') def content(cat1, cat2, topic): topic = topic + ".html" page = '/'.join(['/html', cat1, cat2, topic]) return render_template(page, TOPIC_DICT = TOPIC_DICT)