簡體   English   中英

Heroku 上未加載靜態文件:Django 1.6

[英]Static files not loading on Heroku : Django 1.6

我正在 Heroku 上部署我的 Django 應用程序。 它已成功部署。 但是沒有加載靜態文件。

我按照這個鏈接,但是當包含 Whitenoise 3.x 時,命令

python manage.py collectstatic --noinput

失敗。

我的Procfile:

python manage.py collectstatic --noinput
web:python manage.py runserver
web: gunicorn MovieTracker.wsgi --log-file -
heroku ps:scale web=1

我也試過:

heroku config:set DISABLE_COLLECTSTATIC=1

並且 :

heroku config:set DISABLE_COLLECTSTATIC=0

settings.py 文件是:

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

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'tracker',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 'whitenoise.middleware.WhiteNoiseMiddleware',
)

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "/tracker/static")
# STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

啟用白噪聲后,錯誤:

構建錯誤

您應該刪除 STATIC_ROOT 子路徑上的前導斜杠。

STATIC_ROOT = os.path.join(BASE_DIR, "tracker/static")

項目中whitenoise和Django存在版本沖突。 該項目使用 Django 1.6 而正在使用的 whitenoise 版本是

白噪聲 3.x

兼容性如下:

帶有 Whitenoise 2.x 的 Django 1.6 及更低版本

鏈接中給出了白噪聲 2.x 的設置。

帶有 Whitenoise 3.x 的 Django 1.7 及更高版本

按照這個來處理 whitenoise 3.x。

相應地在 requirements.txt 中設置版本。

在 Procfile 中,只需以下行即可。

web: gunicorn MovieTracker.wsgi --log-file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM