应用程序未获取 .css 文件(flask/python)

新手上路,请多包涵

我正在渲染一个模板,我正在尝试使用外部样式表来设置样式。文件结构如下。

 /app
    - app_runner.py
    /services
        - app.py
    /templates
        - mainpage.html
    /styles
        - mainpage.css

mainpage.html 看起来像这样

<html>
    <head>
        <link rel= "stylesheet" type= "text/css" href= "../styles/mainpage.css">
    </head>
    <body>
        <!-- content -->

但是我的样式都没有被应用。它与 html 是我正在呈现的模板这一事实有关吗?蟒蛇看起来像这样。

 return render_template("mainpage.html", variables..)

我知道这很有用,因为我仍然能够渲染模板。但是,当我尝试将我的样式代码从 html 的“head”标记内的“style”块移动到外部文件时,所有样式都消失了,留下一个空的 html 页面。有人看到我的文件结构有任何错误吗?

原文由 Zack 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 513
2 个回答

你需要有一个“静态”文件夹设置(用于 css/js 文件),除非你在 Flask 初始化期间特别覆盖它。我假设你没有覆盖它。

你的 css 目录结构应该是这样的:

 /app
    - app_runner.py
    /services
        - app.py
    /templates
        - mainpage.html
    /static
        /styles
            - mainpage.css

请注意,您的 /styles 目录应该在 /static 下

然后,这样做

<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/mainpage.css') }}">

Flask 现在将在 static/styles/mainpage.css 下寻找 css 文件

原文由 codegeek 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 jinja2 模板(烧瓶使用)中,使用

href="{{ url_for('static', filename='mainpage.css')}}"

static 文件通常位于 static 文件夹中,除非另有配置。

原文由 njzk2 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题