私はhtml、css、flaskおよびjinja2を使用してWebサイトを作成しています。
flaskサーバーで動作するページがあり、ボタンやラベルなどが表示されますが、持っているCSSスタイルシートは読み込まれていません。
スタイルシートをjinja2テンプレートにどのようにリンクしますか?私はインターネットを見回しましたが、どのように見つけることができません。
CSSスタイルシートのリンクは次のとおりです。これを変更する必要がありますか、pythonコード?
<link rel="stylesheet" type="text/css" href="styles.css">
ここに私のflaskコード:
@app.route('/')
def resultstemplate():
return render_template('questions.html', head='Welcome!')
ファイルの場所は次のとおりです。
/python-code.py /templates/template.html /templates/styles.css
すべてのパブリックファイル(テンプレートやpythonファイル)などの処理されないファイル)は、専用の静的フォルダーに配置する必要があります。デフォルトでは、Jinja2にはstatic
という静的フォルダーがあります。
これで問題が解決するはずです。
移動/templates/styles.css
から/static/styles.css
次のコードでコードを更新すると、正しいファイルの場所に変換されます。
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
Jinja2の静的ファイルの詳細は here です。
<link rel="stylesheet" type="text/css" href="styles.css">
href値は引用符で囲む必要があります。
ファイル名とパスが適切であることを確認してくださいOR以下を試してください
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"/>
ハンドラーの順序が問題を引き起こす可能性があります。
url: /stylesheets static_dir: stylesheets
url: /.* script: helloworld.application
代わりに動作します
url: /.* script: helloworld.application
url: /stylesheets static_dir: stylesheets
ここで言われたことに追加するには、Jinja2をv2.10に更新してください。これより小さなバージョンでは、この同じバグが発生するようです。乾杯!
Stack Overflowでほぼすべてのソリューションを試しました。 static
フォルダーをsameディレクトリーにrun.py
ファイル。フォルダー構造を次から変更しました:
app/
views
static
templates
run.py
に:
app/
views
templates
static
run.py
run.py
代わりに機能します。追加情報については、こちらをご覧ください Jinja Templating Tutorial それが機能するために構造を変更しなければならなかった理由がわかりません。