10

我制作了一个非常简单的烧瓶应用程序,它从 .html 文件中读取其内容。该应用程序的工作方式除外。奇怪的是,我的内联 css 代码有效,但外部样式表无效。我检查了语法,它应该可以工作。烧瓶是否以某种方式阻止读取 .css 文件?

文件夹中的文件可以在这里查看。这三个文件都在同一个文件夹中。

4

2 回答 2

23

您的代码没有使用 Flask 提供文件,它只是读取文件并将其发送到浏览器 - 这就是 URL 不起作用的原因。

您需要从方法中呈现文件。

首先templates在与您的文件相同的目录中创建一个文件夹,.py然后将您的 html 文件移动到该文件夹​​中。创建另一个名为的文件夹static并将您的样式表放在该文件夹中。

你应该有

/flaskwp1.py
/templates
  webcode.html
/static
  webcodestyle.css

然后,调整您的代码:

from flask import Flask, render_template

app = Flask('flaskwp1')
# webcode = open('webcode.html').read() - not needed

@app.route('/')
def webprint():
    return render_template('webcode.html') 

if __name__ == '__main__':
    app.run(host = '0.0.0.0', port = 3000)

编辑webcode.html

<link rel="stylesheet"
      type="text/css"
      href="/static/webcodestyle.css"/>
于 2012-04-29T17:13:09.037 回答
3

您需要创建一个特定的静态 url 和目录。

url_for('static', filename='style.css')

将使您的应用程序能够在 Web 应用程序模块的根目录下名为“static”的文件夹中查找名为“style.css”的文件。它将通过 url '/static/style.css' 提供给您的 Web 应用程序

您可能想要发布 html 文件的内容和 python 代码本身,以便我们可以看到可能出了什么问题。听起来 URL 不正确,或者您没有设置 Web 服务器以从该位置提供静态文件。

于 2012-04-29T15:20:07.147 回答