簡體   English   中英

Django Heroku靜態設置

[英]Django Heroku Static Settings

我有一個Django應用程序,可以在本地運行靜態文件。 當我推送到Heroku時,它正在尋找不同位置的靜態文件(home / www_dev / www_dev / settings / static)。

文件結構:

home
> www_dev
>>> organizations (my app)
>>> static
>>> www_dev
>>>>> settings

base.py設置:(使用兩個Django模板的Scoops)

STATIC_ROOT = normpath(join(SITE_ROOT, 'assets'))
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    normpath(join(SITE_ROOT, 'static')),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

production.py設置 (使用Heroku文檔)

# Static asset configuration
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

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

wsgi.py

import os
from os.path import abspath, dirname
from sys import path

SITE_ROOT = dirname(dirname(abspath(__file__)))
path.append(SITE_ROOT)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www_dev.settings.production")

from django.core.wsgi import get_wsgi_application
from dj_static import Cling

application = Cling(get_wsgi_application())

Procfile

web: gunicorn --pythonpath www_dev www_dev.wsgi -b 0.0.0.0:$PORT

嘗試添加到urls.py每個其他Stack Overflow帖子,不起作用:

if not settings.DEBUG:
    urlpatterns += patterns('',
        (r'^static/(?P<path>.*)$', 'django.contrib.staticfiles.views.serve', {'document_root': settings.STATIC_ROOT}),
    )

Heroku錯誤:

-----> Preparing static assets
       Collectstatic configuration error. To debug, run:
       $ heroku run python ./www_dev/manage.py collectstatic --noinput

運行collectstatic的結果:

OSError: [Errno 2] No such file or directory: '/app/www_dev/www_dev/settings/static'

如果我無法解決這個問題,我很願意去S3,但是很難找到一個很好的工作流程,用於通過django-storage和boto將靜態(CSS / JS)本地推送到S3。 可以在S3上找到所有媒體。 任何幫助深表感謝!

更改settings / production.py中的STATIC_ROOT

如果您不需要使用不同的靜態根目錄,則只需刪除該變量,因為它已在設置/ base.py中定義

heroku doc假定您使用位於project_dir / settings.py中的單個settings.py文件。

暫無
暫無

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

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