1
次のエラーが発生します。これは、私がDjangoアプリケーションをApache + mod_wsgiを使ってデプロイする場合のプロダクションのみです。それは開発サーバー(私のコンピュータ)で完璧に機能します:開発時にDjango TemplateDoesNotExistがプロダクションサーバーで動作する場合
TemplateDoesNotExist at/
base.html
postmortem表示されているように、設定から2つのフォルダのうち1つのみが検索されています。
ここは自分の設定です。 base.htmlテンプレートは、「テンプレート」フォルダ内にある:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, "templates"),
os.path.join(BASE_DIR, "horses/templates")
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
ここで私は、このテンプレートが実際に存在することを確認します。
>>> from django.template.loader import get_template
>>> get_template("base.html")
<django.template.backends.django.Template object at 0x7f6af68d38d0>
あなたは私のテンプレートのdirsに2のうちの1つのフォルダのみを見ることができるように開発サーバーではうまく動作している間に検索されています。これがなぜ起こるのでしょうか?それはある種のパーミッションの問題かもしれません。
Apacheはあなたのコードを特別なユーザーとして実行します。他のユーザーがアクセスできるように、ディレクトリ/ファイルに対するアクセス許可です。 –
@GrahamDumpleton例を挙げてください。 – Marijus
'' ls -las/home/bot_frontend/horses/templates/base.html''と '' ls -lasd/home/bot_frontend''を実行するとどうなりますか? –