ローカル マシンでpython manage.py collectstatic --noinputを実行すると、正常に動作します。しかし、heroku がpython manage.py collectstatic --noinput を実行すると、次のようなエラーが発生します: for entry in os.scandir(path) FileNotFoundError: [Errno 2] No such file or directory: '/tmp/build_5d05d870/static'
私のプロジェクト ディレクトリは次のようになります。
mysite-----|libooki(app)----------|migrations
|----------------------|init.py
|----------------------|admin.py
|----------------------|........
-----------|media
-----------|media_cdn
-----------|mysite
-----------|static|--------------|css|------style.css
-----------|staticfiles
-----------|templates
-----------|.........
私のsettings.pyはこのようです。(私はこの記事に従いました: https://devcenter.heroku.com/articles/django-assets )
from pathlib import Path
import os
import django_heroku
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
INSTALLED_APPS = [
........,
'libooki',
]
MIDDLEWARE = [
...........................................,
'whitenoise.middleware.WhiteNoiseMiddleware',
]
WSGI_APPLICATION = 'mysite.wsgi.application'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
MEDIA_ROOT = os.path.join(BASE_DIR,'media_cdn')
MEDIA_URL = '/media/'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
django_heroku.settings(locals())