10

.html ファイルからコンテンツを読み取る非常に単純なフラスコ アプリケーションを作成しました。アプリケーションは、スタイルを除いて動作します。奇妙なことに、インライン CSS コードは機能しますが、外部スタイル シートは機能しません。構文を確認しましたが、動作するはずです。フラスコはどういうわけか .css ファイルが読み取られないようにしていますか?

フォルダ内のファイルは、ここで表示できます。これらの 3 つのファイルはすべて同じフォルダーにあります。

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 に答える