【问题标题】:Flask + Jinja2 Script importsFlask + Jinja2 脚本导入
【发布时间】:2018-11-10 02:19:26
【问题描述】:

我在使用 Flask 时遇到问题,它是导入脚本和样式表时的模板。我到处搜索如何做到这一点,但没有一个能解决我的问题。 这是我的项目结构: https://i.gyazo.com/f746c58499cbbafa11b023eecb316b15.png 这就是我定义 Flask 配置的方式:

app = Flask(__name__,
            template_folder="../web/templates",
            static_folder="../web/static",
            static_url_path=''
)

这就是我导入脚本的方式:

<script src={{ url_for('static', filename='/js/home.js') }}></script>

这是我得到的消息:

Falló la carga de con fuente “http://localhost:5000/js/home.js”。

(基本上是说加载该脚本失败)

我已经阅读了 Flask 的快速入门指南。 我尝试在项目的根目录中创建一个“静态”文件夹,而不是在配置上设置任何内容。试图在我的项目中随处更改静态文件夹。

谁能帮我解决这个问题?我是 Flask 和 Jinja 的新手,但一直在搜索一整天,但无法正常工作。

注意:模板的路径可以正常工作,我的模板可以正常工作,除了 .js 和 .css 导入。

【问题讨论】:

  • 请考虑发布您的代码位而不是屏幕截图。
  • 感谢您的意见。我是在 SO 中发帖的新手。
  • 您的.py 文件位于哪个文件夹中,您从哪里运行它?
  • i.gyazo.com/f44dda71de5b4c746cf7728433fdf445.png 这是项目结构。它是从“controladores”内的 init 运行的,我正在通过 IDE (pyCharm) 执行它
  • 我要问...web/static/js里面的文件结构是什么样子的。

标签: javascript python flask server jinja2


【解决方案1】:

您需要从&lt;script src={{ url_for('static',filename='/js/home.js') }}. 中删除起始“/”

所以把它改成&lt;script src={{ url_for('static',filename='js/home.js') }}.

您的项目结构应如下所示:

  • MyFlaskApp/templates/home.html
  • MyFlaskApp/static/js/home.js
  • MyFlaskApp/app.py

app.py

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/")
def home():
    return render_template("home.html")


if __name__ == "__main__":
    app.run()

home.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src={{ url_for('static',filename='js/home.js') }}> </script>
</body>
</html>

home.js

alert("hello");

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2012-12-19
    • 2018-10-21
    相关资源
    最近更新 更多