【发布时间】:2018-03-03 03:03:15
【问题描述】:
我正在使用 Python 和 Flask 构建一个简单的交互网络应用程序。 使用 Chrome 在 localhost:5000 上进行测试。
我有一个模板和一个关联的 javascript 文件位于: ./templates/main.html ./templates/main_scripts.js
main.html 模板包含如下脚本文件:
<script src="main_scripts.js"></script>
当我使用这个 Python 代码渲染模板时...
return render_template('main.html', session_id=session_id, title=sess.title)
main.html 页面已渲染,但我在 Chrome 控制台中收到此错误:
Failed to load resource: the server responded with a status of 404 (NOT FOUND)
当错误发生时,使用 Chrome 控制台检查未找到的“main_scripts.js”的位置,浏览器认为它正在尝试从我的虚拟环境中加载它:
./env/Scripts/main_scripts.js
...而不是来自与模板相同的目录。
我似乎无法强制渲染的模板了解它的脚本文件所在的位置。到目前为止,我已经尝试过像“./main_scripts.js”甚至“/appdir/main_scripts.js”这样的src路径,结果完全相同。
【问题讨论】:
-
使用
<script src="{{url_for('static', filename='main_scripts.js')}}"></script>,当你在子路由(即:`/user/info')时,相对路径会不同。
标签: javascript python templates flask path