vbs*_*ql7 2 javascript python templates path flask
我正在使用Python和Flask构建一个简单的交互Web应用程序。使用Chrome在localhost:5000上进行测试。
我有一个模板和一个相关的javascript文件,位于:./templates/main.html ./templates/main_scripts.js
main.html模板包括如下脚本文件:
<script src="main_scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)
当我使用此Python代码渲染模板时...
return render_template('main.html', session_id=session_id, title=sess.title)
Run Code Online (Sandbox Code Playgroud)
呈现了main.html页面,但我在Chrome控制台中收到此错误:
Failed to load resource: the server responded with a status of 404 (NOT FOUND)
Run Code Online (Sandbox Code Playgroud)
当发生错误时,使用Chrome控制台检查未找到的“ main_scripts.js”的位置,浏览器认为它正在尝试从我的虚拟环境中将其加载到:
./env/Scripts/main_scripts.js
Run Code Online (Sandbox Code Playgroud)
...而不是与模板位于同一目录。
我似乎无法强迫渲染的模板了解其脚本文件所在的位置。到目前为止,我已经尝试了src路径,例如“ ./main_scripts.js”,甚至“ /appdir/main_scripts.js”,其结果完全相同。
您需要在与模板floder和js子flloder相同的级别上创建一个静态floder,然后将js放入该floder中,并在html中这样调用它,这是pythonic的方法:
<script src="{{ url_for('static', filename="js/main_scripts.js")}}"></script>
Run Code Online (Sandbox Code Playgroud)
如在flask的官方文档中有关应用程序结构的此处所述,您的项目结构应如下所示:
/yourapplication
yourapplication.py
/static
/css
style.css
/js
main_scripts.js
/templates
main.html
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4973 次 |
| 最近记录: |