2017-02-02 5 views
0

После прочтения некоторых руководств и вопросов по SO (например: css not loading in my login and admin page in django), я не нашел способ загрузить таблицу стилей CSS.Django: нет CSS на странице администратора

Это происходит из миграции между моей локальной машиной MacOSX и моим новым удаленным сервером Ubuntu.

Мой администратора Логин страница выглядит следующим образом:

enter image description here

Как вы можете видеть, у меня нет CSS, который принимается во внимание из /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/

Все мои админ часть выглядит следующим образом : без CSS

У меня есть settings.py файл который выглядит так:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 
TEMPLATE_DIRS = (
     os.path.join(BASE_DIR, 'templates'), 
) 

# Application definition 

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'app1', 
    'app2', 
    'app3', 
    'app4', 
    'app5', 
    'django_countries', 
    'app6', 
    'app7', 

] 

MIDDLEWARE_CLASSES = [ 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.middleware.gzip.GZipMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
] 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': ['/var/www/html/myproject/templates/', 
       '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/', 
       '/var/www/html/myproject/app1/templates/', 
       '/var/www/html/myproject/app2/templates/', 
       '/var/www/html/myproject/app3/templates/' ], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'debug' : DEBUG, 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.10/howto/static-files/ 

STATIC_URL = '/static/' 
STATICFILES_DIRS = (os.path.join(BASE_DIR, "/var/www/html/myproject/static/"),) 

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 

# SESSION AGE 100 Minutes 
SESSION_COOKIE_AGE = 100*60 # X * 60s 

# Simple Math 
CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.math_challenge' 

Так что я не найти способ, чтобы получить такой шаблон:

enter image description here

Если у вас есть советы, которые могли бы мне помочь?

Спасибо вам заранее!

EDIT:

Traceback из python manage.py collectstatic

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 359, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 294, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 345, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 193, in handle 
    collected = self.collect() 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 114, in collect 
    for finder in get_finders(): 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/finders.py", line 264, in get_finders 
    yield get_finder(finder_path) 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/lru_cache.py", line 100, in wrapper 
    result = user_function(*args, **kwds) 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/finders.py", line 277, in get_finder 
    return Finder() 
    File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/finders.py", line 66, in __init__ 
    "The STATICFILES_DIRS setting should " 
django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting 

Часть apache2.conf:

Alias /static/ /var/www/html/myproject/static/ 

<Directory /var/www/html/myproject/static/> 
     Require all granted 
</Directory> 

<Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all denied 
</Directory> 

<Directory /usr/share> 
     AllowOverride None 
     Require all granted 
</Directory> 

WSGIScriptAlias//var/www/html/myproject/myproject/wsgi.py 
WSGIPythonPath /var/www/html/myproject 


<Directory /var/www/html/myproject/myproject> 
     <Files wsgi.py> 
     Options Indexes FollowSymLinks 
     Require all granted 
     SetEnvIfNoCase Host .+ VALID_HOST 
     Order Deny,Allow 
     Deny from All 
     Allow from env=VALID_HOST 
     </Files> 
</Directory> 

#<Directory /srv/> 
#  Options Indexes FollowSymLinks 
#  AllowOverride None 
#  Require all granted 
#</Directory> 

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so 

<VirtualHost *:80> 
    Alias /media/ /usr/local/lib/python2.7/site-packages/django/contrib/admin/media/ 
</VirtualHost> 
+0

ли вы запустить 'питона manage.py collectstatic' на новом сервере? –

+0

Это с DEBUG true или false? Используете ли вы сервер или Apache/nginx/что? Вы настроили сервер для обслуживания статических файлов, и если да, то как? –

+0

Я добавил Traceback из 'python manage.py collectstatic', который я уже пробовал – Deadpool

ответ

1

Для запуска сбора статической команды мы должны установить STATIC_ROOT где нет файлы ectstatic output будут сохранены, поэтому добавьте STATIC_ROOT в ваш файл настроек и убедитесь, что путь STATIC_ROOT установлен из вашего apache conf. В вашем settings.py

STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'), 
    ) 
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 

поэтому при запуске collectstatic все файлы будут собраны вы staticfiles каталог.

И обновить Alias /static/ к

Alias /static/ /var/www/html/myproject/staticfiles/ 

больше о статическом файле, служащей проверки https://docs.djangoproject.com/en/1.10/howto/static-files/

+0

Это каталог 'staticfiles'. – MicroPyramid

Смежные вопросы