首页 > 解决方案 > 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 脚本相同的文件夹中,但我不知道为什么网页没有找到这些文件。

任何帮助表示赞赏。

标签: javascriptpythonhtmlflask

解决方案


根据 Flask 约定,Javascript 和 css 文件位于名为static. 所以,你需要做的就是

  • static在旁边创建一个文件夹templates
  • assetsjs目录移动到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>

推荐阅读