6

Python を使用するのは初めてで、.tpl ドキュメントからスタイル シートを参照しようとしたときに問題が発生しました。私のpython、テンプレート、およびcssドキュメントはすべて同じディレクトリにありますが、CMDを使用して「localhost:8080」にページをロードすると、スタイルが適用されていないテンプレートが表示されます。

私のテンプレート ドキュメント index.tpl では、3 つのスタイルシートを参照しています。

<link rel="stylesheet" type="text/css" href="demo.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="animate-custom.css" />

そして、私の python ファイルはテンプレートを出力します: index.py:

from bottle import route,template,debug,run
import sqlite3

@route('/')
def player():
    return template('index.tpl')

debug(True)
run(reloader=True)
4

1 に答える 1

8

私はボトルを使用していませんが、ほとんどの Web フレームワークでは、css/js/images を特定のディレクトリ (構成で設定) に配置する必要があります。通常、これは「静的」などと呼ばれます。

これらの CSS ファイルをブラウザーに直接ロードしようとした場合は、次のようになります。

http://localhost:8080/demo.css 

あなたは404を取得します。

現在設定している方法は、従来の PHP/CGI の場合と同じです。Web サーバーはディスク上のファイルを検索して提供します。フレームワークは (一般的に) そのようには機能しません。ルーティング ルールを設定します。

@route('/') デコレーターを使用してそれを行いました。これを設定することで、ボトルに「http:// localhost:8080/ へのすべてのリクエストはプレーヤー関数を実行し、それが生成するものを返す必要があります」と指示しました。css ファイルのルールを設定していないことに注意してください。

もう 1 つの可能性は、HTML で CSS ファイルを正しく参照していないことです。CSS ファイルを直接ロードしたときに 404 が返されない場合は、HTML を投稿してください。

編集:ボトルのドキュメントでこれを見つけました:

http://bottlepy.org/docs/dev/tutorial.html#routing-static-files

画像や CSS ファイルなどの静的ファイルは自動的には提供されません。ルートとコールバックを追加して、提供されるファイルとそれらを見つける場所を制御する必要があります。
from bottle import static_file
@route('/static/<filename>')
def server_static(filename):
  return static_file(filename, root='/path/to/your/static/files')
于 2012-11-24T17:15:27.020 に答える