9

テンプレート HTML ファイルを取得してライブで変更するアプリケーションをセットアップしようとしています。ある程度は機能していますが、ページ上の画像と CSS は提供されておらず、要求されたときにコンソールに HTTP 500 エラーが表示されます。

これは私のディレクトリ構造です

Server/
    assets/
        css/
            img/
            jquery.css
            kickstart.css
            zellner.css
        js/
            jquery.min.js
            kickstart.js
        style.css
        tb_404.png
        tbrun1.png
        tbservers.png
    403.html
    404.html
    500.html
    appid
    index.html
    maintenance.html
    server.log
    server.py

これは、server.py でルーティングを設定する方法です。

@error(403)
def error403(error):
    return static_file("403.html")

@error(404)
def error404(error):
    return static_file("404.html")

@error(500)
def error500(error):
    return static_file("500.html")

@route('assets/<filepath:path>')
def server_static(filepath):
    return static_file(filepath, root='assets')

そして、私のhtmlファイルでは、ファイルは次のようにリンクされています:

<script type="text/javascript" src="assets/js/jquery.snippet.min.js"></script>

assets/ のサブディレクトリにあるスタティックが原因でしょうか? または、static_file の使用方法を完全に誤解していますか?

これは、Python コンソールで表示されるエラーのタイプです。

[07/May/2012 10:51:05] "GET /tempus/23 HTTP/1.1" 200 4501 <h1>Critical error while processing request: /tempus/assets/js/jquery.snippet.min.js</h1>

/tempus/assets/ にルーティングされている理由がわかりません ...

何か助けはありますか?ありがとう!

4

3 に答える 3

10

また、静的ファイルの提供にも問題がありました。これが私の解決策です:

@route('/static/:filename#.*#')
def send_static(filename):
    return static_file(filename, root='./static/')

静的ファイルにアクセスしたいときなど。テンプレートファイル:

@route('/')
def index():
    output = template('static/index.tpl')
    return output
于 2012-05-07T10:12:22.467 に答える
4

ファイルへの完全なパスを root= に入れる必要があり、プログラムが実行されている場所によって異なります。これを見てみましょう: http://bottlepy.org/docs/dev/tutorial.html?highlight=static_file#tutorial-static-files

于 2012-05-07T13:32:15.850 に答える
1

@route デコレーターが serve_static に対して正しくありません。

@route('/assets/') と読む必要があります

于 2013-02-08T22:53:08.300 に答える