2015-07-20 125 views
0

問我的問題之前,我的理解是有同一個問題一個高度評價的問題:Apache not serving django admin static files阿帕奇不服務管理靜態文件Django的

不過,我已經試過了同樣的解決方案可以看出以下 這是我的Apache的conf文件:

WSGIScriptAlias//home/ubuntu/sportsgullyrest/SportsGullyRest/wsgi.py 
WSGIPythonPath /home/ubuntu/sportsgullyrest/venv/bin/python2.7 

Alias /static/admin /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin 
Alias /static/ /home/ubuntu/sportsgullyrest/static/ 
<Directory /home/ubuntu/sportsgullyrest/SportsGullyRest> 
    <Files wsgi.py> 
     Order deny,allow 
     Require all granted 
    </Files> 
</Directory> 

<Directory /home/ubuntu/sportsgullyrest/static> 
    Require all granted 
</Directory> 
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin"> 
    Order allow,deny 
    Options Indexes 
    Allow from all 
    IndexOptions FancyIndexing 
</Directory> 

我使用Django 1.7,這裏是我的設置文件

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 
SETTINGS_DIR = os.path.dirname(__file__) 
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir) 
PROJECT_PATH = os.path.abspath(PROJECT_PATH) 
TEMPLATE_PATH = os.path.join(PROJECT_PATH, 'templates') 
STATIC_PATH = os.path.join(PROJECT_PATH, 'static') 



# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = '...' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

TEMPLATE_DEBUG = True 

ALLOWED_HOSTS = [] 


# Application definition 

INSTALLED_APPS = (
    ... 
) 

MIDDLEWARE_CLASSES = (
    ... 
) 
AUTHENTICATION_BACKENDS = (
    ... 
) 
TEMPLATE_CONTEXT_PROCESSORS = (
    ... 
) 
# Database 
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     ... 
    } 
} 

# Internationalization 
# https://docs.djangoproject.com/en/1.7/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = None 

USE_I18N = True 

USE_L10N = True 

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

STATIC_URL = '/static/' 
MEDIA_ROOT = 'static/' 
MEDIA_URL = '/static/img/' 
TEMPLATE_DIRS = (
    TEMPLATE_PATH, 
) 

STATICFILES_DIRS = (
    STATIC_PATH, 
) 

回答

2

必須定義爲static C_ROOT設置,如os.path.join(BASE_PATH, 'staticfiles')

然後,從您的Apache conf中刪除/static/admin/別名,確保static別名指向staticfiles目錄,並運行./manage.py collectstatic

+0

我只面臨一個更多的錯誤。這似乎是我的主要靜態文件沒有收集使用'collectstatic'。所以現在Django靜態文件被提供,但是我的前端靜態資源沒有找到,因爲它們不存在於新創建的staticfiles文件夾中 – Newtt

+0

因此,您的STATICFILES_DIRS確實需要包含您稱爲STATIC_PATH的內容,之前我錯了(我被簡單地弄糊塗了,因爲你已經定義了,而不是STATIC_ROOT:_PATH不是標準的Django設置)。 –