My Flask在调用页面的URL路由为单数(即@app.route("/shop/")
(时,静态文件夹(applications/static(没有问题。
终端输出:
127.0.0.1 - - [29/Jul/2020 17:56:11] "GET /shop/ HTTP/1.1" 200
127.0.0.1 - - [29/Jul/2020 17:56:11] "GET /static/img/shop/products/5.j
pg HTTP/1.1" 200
...
问题是:
但是,当我使用@app.route("/shop/cart/")
为cart.html添加一个级别时,Flask就"失去"了理智,开始在这里寻找静态文件夹:
终端输出:
127.0.0.1 - - [29/Jul/2020 17:56:20] "GET /shop/cart/ HTTP/1.1" 200
127.0.0.1 - - [29/Jul/2020 17:56:20] "GET /shop/static/css/plugins.min.
css HTTP/1.1" 404
现在,它路由到/shop/cart/页面,但没有静态资源,只有HTML。
问题是我使用HTML文件中的href
或src="../static/resource"
来映射资源。这是相对于模板文件的正确资源路由。然而,通过一些研究,我意识到Flask在将资源与HTML文档匹配时,会根据应用程序文件夹的位置来查找资源。
来自非模板化背景和WordPress,我习惯于相对于我正在工作的文档进行路由,或者根本不必担心逻辑。因此,解决方案是浏览我的HTML文档,找到所有";CCD_ 5";并将它们替换为空,有效地删除它们,并将我的路由保留为href
或src="/static/resource"
,而不是href
或src="../static/resource"