javascript - JavaScript 文件未在 Flask 网页中加载
问题描述
我正在学习构建 Flask 网页,但由于某种原因,我无法找到任何外部文件(如 .js 和 .css)。这是一个基本的 Flask 应用程序:
from flask import Flask, redirect, url_for, render_template
app = Flask(__name__)
@app.route('/index.html')
def home() :
return render_template('index.html')
if __name__ == "__main__" :
app.run(debug=True)
HTML 文件只是带有完整 Bootstrap CDN 的 HTML 样板。
文件路径如下:
projfolder/ script.py, templates/ (in templates/)assets/, css/, js/, index.html
HTML 的文件路径如下:
<script src="assets/mail/jqBootstrapValidation.js"></script>
<script src="assets/mail/contact_me.js"></script>
<script src="js/scripts.js"></script>
我尝试了各种文件路径,并试图将文件本身放在与 HTML 相同的文件夹、与 .py 脚本相同的文件夹中,但我不知道为什么网页没有找到这些文件。
任何帮助表示赞赏。
解决方案
根据 Flask 约定,Javascript 和 css 文件位于名为static
. 所以,你需要做的就是
static
在旁边创建一个文件夹templates
- 将
assets
和js
目录移动到statis
- 在 HTML 文件中,您需要像这样导入这些文件:
<script src="{{ url_for('static', filename='js/scripts.js') }}"></script>
<script src="{{ url_for('static', filename='assets/mail/contact_me.js') }}"></script>
<script src="{{ url_for('static', filename='assets/mail/jqBootstrapValidation.js') }}"></script>
推荐阅读
- ios - 排错错误:UICollectionViewFlowLayout 的行为未定义,因为项目高度必须小于高度
- sql - 如果满足条件,则限制内连接
- javascript - 检查复选框在 React 中不起作用
- c# - 为什么我们需要从 ASP.NET Core 2.1 迁移到 3.1
- c - 为什么 argv 在我的 execve 系统调用监视器中总是(NULL)
- cron - 如何在 hazelcast IScheduledExecutorService 中执行 cron 分布式任务?
- git - macOS 上的 git clone 仅适用于某些 Gitlab 实例
- python - Python selenium 无法单击按钮执行脚本
- kubernetes - Kubernetes 服务如何将流量路由到 https
- python - 美丽的汤对象在它附加到更改的请求对象后仍然有效