私はDjango Heroku上のアプリです。静的ファイルに問題があります(あるHeroku environment でロードされていますが、別の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リポジトリのルートレベルに実際に「静的」なディレクトリがあるかどうかに関係なく、エラーが発生します(両方でテストしました)。
何か案は?
Gitリポジトリのルートではなく、プロジェクトフォルダー内のsettings.pyの隣にある「静的」という名前のフォルダーを探しています。
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
必要になるまで設定します。
私はこれと同じ問題を抱えていました、そして私のために働いた解決策があります:
私が変更され:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
に:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'myappfolder/static'),
)
上記の@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 /)ディレクトリです