41

Heroku に Django アプリがあります。静的ファイルにいくつか問題があります (ある Heroku環境では読み込まれますが、別の環境では読み込まれません)。ここで推奨されているデバッグ コマンドを試しました。

$ heroku run python manage.py collectstatic --noinput
Running `python manage.py collectstatic --noinput` attached to terminal... up, run.8771
OSError: [Errno 2] No such file or directory: '/app/{myappname}/static'

ここに私のsettings.pyがあります。これは、Herokuが推奨するものと同じです:

import os
import os.path

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

Gitリポジトリのルートレベルに実際にディレクトリ「静的」があるかどうかに関係なく、エラーが発生します(両方の方法でテストしました)。

何か案は?

4

3 に答える 3

55

これは、git リポジトリのルートではなく、settings.py の隣、つまりプロジェクト フォルダーにある「static」という名前のフォルダーを探しています。

git root/
git root/{app name}
git root/{app name}/settings.py
git root/{app name}/static/         <- this is what you're missing

空のフォルダーは git によって追跡されないことに注意してください。そのため、空の場合は空のファイルをそこに配置する必要があります。STATICFILES_DIRSまたは、必要になるまで設定を削除します。

于 2013-10-11T17:19:56.250 に答える
17

私はこれと同じ問題を抱えていましたが、これが私のために働いた解決策です:

私が変更され:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

に:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'myappfolder/static'),
)
于 2014-11-08T03:35:54.837 に答える
1

上記の@joerickの答えが問題です。ただし、別の「静的」フォルダー (git root/{your app}/static) を配置したくない場合は、django-admin makeproject によって最初に提供される BASE_DIR 変数を変更することを検討してください。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

これは単なる (git root/) ディレクトリです

于 2015-11-26T15:34:06.370 に答える