2016-08-25 5 views
0

私の問題:settings.py djangoでdebug = trueとすると、すべてのjsがすべて連結され、debug-falseが基本的に役に立たないときに縮小されます。COMPRESS_ENABLED = true(デフォルト時にデバッグ=偽)私は500エラーを取得しますが、実際に何が起こっているのか分からない:Djangoコンプレッサーとmanage.pyの問題を解決する

それは: 実行システムチェックのrunserver個人用サイトイタロます$ ./manage.py ...

System check identified no issues (0 silenced). 
August 25, 2016 - 17:37:47 
Django version 1.10, using settings 'mysite.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
[25/Aug/2016 17:37:51] "GET/HTTP/1.1" 500 6098 
[25/Aug/2016 17:37:51] "GET /static/scss/app.css HTTP/1.1" 304 0 
[25/Aug/2016 17:37:51] "GET /static/CACHE/js/f6979994c378.js HTTP/1.1" 200 3524 
[25/Aug/2016 17:37:51] "GET /static/CACHE/js/029dc704a0f3.js HTTP/1.1" 200 3788 
[25/Aug/2016 17:37:51] "GET /static/CACHE/js/bd8a8faf4632.js HTTP/1.1" 200 135985 
[25/Aug/2016 17:37:51] "GET /static/CACHE/js/50721ef0285b.js HTTP/1.1" 200 98 
[25/Aug/2016 17:37:51] "GET /static/CACHE/js/2f9428d5f621.js HTTP/1.1" 200 138405 

私はいくつかのjavascriptファイルがロードされているように見えますが(明らかに連結されていないようです)、CSSファイルは縮小されています...私の解決策はt O生産に対するCOMPRESS_ENABLED = falseを設定してから行うようにスクリプトを書く:

1)collectstatic

2)ompressorが無効になっているので、私は一時的なのrunserverを実行し、ちょうど使用する前にそれを有効にしてみました(--forceを圧縮私は何を得る

のrunserver)

3)圧縮が、私は同じ結果を得ることは別々のファイルであり、彼らが縮小さていない、私はすべてのエラーを得ることはありませんが、異なる非JS縮小さのファイルを持つことはほとんどあり役に立たないIMHO。

iは

  • はALLOWED_HOSTSを使用して試み= [ '*']コンプレッサ
  • 無効ホワイトノイズ
  • ALLOWED_HOSTS = [ '*']
  • 無効CSSの最新バージョンへ
  • 更新プロセッサー(サスのコンパイルは問題ありませんが、デバッグ= falseの場合は連結されません)

これは多くのポストで提案されていますが動作しません。 私の最初の質問:これはどのように修正するのですか?

私は無知です。この時点で、私の2番目の質問は、django-compressorの代替案がある場合です。

import os 
import dj_database_url 
import compressor 
import socket 

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

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

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

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

if os.environ['PRODUCTION'] == '1': 
    DEBUG = False 
    # ALLOWED_HOSTS = ['itmandar.herokuapp.com'] 
else: 
    DEBUG = True 
    # ALLOWED_HOSTS = ["localhost", "127.0.0.1",] 
    print 'DEBUG', DEBUG, 'assuming we\'re not in production' 

ALLOWED_HOSTS = ['*'] 

# Application definition 

INSTALLED_APPS = [ 
    'myresume.apps.MyresumeConfig', 
    'sass_processor', 
    'django_markup', 
    'compressor', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 
if DEBUG: 
    INSTALLED_APPS += ['template_repl'] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    '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', 
] 

ROOT_URLCONF = 'mysite.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'myresume/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', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'mysite.wsgi.application' 

# Database 
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases 


DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'mysite', 
     'USER': 'it', 
     'PASSWORD': os.environ['DB_KEY'], 
     'HOST': 'localhost', 
     'PORT': '', 
    } 
} 

# Password validation 
# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 


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

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Update database configuration with $DATABASE_URL. 
db_from_env = dj_database_url.config() 
DATABASES['default'].update(db_from_env) 

# Simplified static file serving. 
# https://warehouse.python.org/project/whitenoise/ 

# django filepicker 
FILEPICKER_API_KEY = os.environ['FILEPICKER_API_KEY'] 
FILEPICKER_API_SECRET = os.environ['FILEPICKER_API_SECRET'] 
CWD = os.getcwd() 
MEDIA_ROOT = os.path.join(CWD, 'media') 


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

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

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 
# STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage' 
STATIC_ROOT = os.path.join(BASE_DIR, "static") 
STATIC_URL = '/static/' 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'compressor.finders.CompressorFinder', 
) 

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



STATICFILES_DIRS = [ 
    os.path.join(PROJECT_ROOT, 'static'), 
] 

# sass processor settings 
# SASS_PROCESSOR_ROOT = os.path.join(ROOT_PATH, 'static') 
SASS_PRECISION = 8 

SASS_PROCESSOR_ENABLED = DEBUG 
COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.JSMinFilter'] 
COMPRESS_OFFLINE = not DEBUG 

if DEBUG: 
    #sass processor 
    SASS_OUTPUT_STYLE = 'nested' 
else: 
    #sass processor 
    SASS_OUTPUT_STYLE = 'compressed' 

答えて

0

問題は、私はこのソリューションを使用するhttp://www.kennethreitz.org/essays/introducing-dj-static

を決めた、それはDJ-静的

と呼ばれるモジュールのデバッグ=偽だときDjangoは静的なファイルを提供されていないという事実に関係しているので、問題は解決されました。

関連する問題