4

Apacheでサーバーを実行しています。私は bottle.py を使っています。xxx/getbio に行くと、次のように返されることがあります。

Error: 500 Internal Server Error: Template 'bio' not found.

このエラーは常に発生するわけではありません。Apache を再起動すると、数時間正常化されますが、再び発生します。コードフラグメントは次のとおりです。

@route('/getbio')
def getBio():
    return template('bio')

ファイル構造は次のとおりです。

xxx/
├── views/
│   ├── bio.tpl
└── index.py

そして、次のコード行を見逃しませんでした:

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
sys.path.append('views')
os.chdir(os.path.dirname(os.path.abspath(__file__)))

このバグを修正する方法がわからないので、助けてください

4

5 に答える 5

8

テンプレートの場所をTEMPLATE_DIRではなく に追加しsys.pathます。

bottle.TEMPLATE_PATH.insert(0, 'views')

絶対パスを使用する方がより堅牢であることがわかる場合があります。

bottle.TEMPLATE_PATH.insert(0, '/path/to/xxx/views')
于 2013-08-27T14:00:08.900 に答える
0

残念ながら、ボトルには include () 関数にバッグがあります

% include ("my_template.tpl")  # template not found
% include("my_template.tpl")  # template found

唯一の違いは、"include" の後のスペースが禁止されていることです。

この問題のメッセージが、誰かがデバッグの時間を節約するのに役立つことを願ってい ます https://github.com/bottlepy/bottle/issues/1258

テンプレートは bottle.TEMPLATE_PATH bottle.TEMPLATE_PATH.insert(0, abs_views_path ) にある必要があります

于 2020-11-26T12:18:53.710 に答える