Próbuję django-pipeline, aby zminimalizować zasoby statyczne, użyć dla nich bufora i uprościć szablony. Moje pliki CSS i JS zostały znalezione i wczytane przez moją przeglądarkę, ale załadowanie mojej (bardzo prostej) strony głównej zajmuje około 10 sekund.django-pipeline - ładowanie strony naprawdę powolne
Używam Python 2.7.6 i 1.7.3, Django Django rurociągu 1.4.3. PyCharm uruchamia serwer programistyczny za pomocą lokalnego virtualenv.
Moja settings.py zawiera następujące elementy:
DEBUG = True
TEMPLATE_DEBUG = DEBUG
INSTALLED_APPS = (
'django_admin_bootstrapped', # custom admin
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# pip installed apps
'pipeline',
# project apps
'myapp',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'pipeline.middleware.MinifyHTMLMiddleware',
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.FileSystemFinder',
'pipeline.finders.CachedFileFinder',
'pipeline.finders.PipelineFinder',
)
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'myapp/static'),
)
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor'
PIPELINE_CSS = {
'base': {
'source_filenames': (
'myapp/css/base.css',
'myapp/bower_components/bootstrap/dist/css/bootstrap.css',
'myapp/bower_components/Hover/css/hover.css',
'myapp/bower_components/font-awesome/css/font-awesome.css',
),
'output_filename': 'css/myapp.css',
},
}
PIPELINE_JS = {
'base': {
'source_filenames': (
'myapp/bower_components/jquery/dist/jquery.min.js',
'myapp/bower_components/bootstrap/dist/js/bootstrap.min.js',
),
'output_filename': 'js/myapp.js',
},
}
Moja baza szablon HTML zawiera następujące elementy:
{% load staticfiles %}
{% load pipeline %}
<!DOCTYPE html>
<html>
<head>
[...]
{% block css %}
{% stylesheet 'base' %}
{% endblock css %}
{% block javascript %}
{% javascript 'base' %}
{% endblock javascript %}
</head>
<body> [...] </body>
</html>
Moja home.html rozciąga base.html ale nie używa ani css javascript znaczniki szablonów potoku.
Wystarczy upewnić yuglify jest dostępny:
$ yuglify --version
0.1.4
Co robię źle tutaj?
Uwaga: przeglądarka nie znaleźliśmy aktywów statyczne (myapp.css i myapp.js), jeżeli PIPELINE_ENABLED = True
.
Czy to szczęście? Mam ten sam problem, gdy używam potoku lokalnie z S3. tj. Zdarza się, gdy używam DEBUG = True (i PIPELINE_ENABLED = False, co jest domyślne). Po włączeniu potoku działa zgodnie z oczekiwaniami. –
Z tego co pamiętam, strona ładowała się bardzo powoli, ponieważ wyszukiwarka plików miała wielkie drzewo ścieżek do przejścia.Problem polegał na tym, że przy debugowaniu = False w rozwoju, musisz użyć konkretnych wyszukiwaczy: https://github.com/cyberdelia/django-pipeline/issues/418. Myślę, że skończyłem w tym momencie, kiedy stworzyłem ten temat. Ponieważ zarządzam pakietami front-end z altanką, wszystkie pliki katalogowe (src, dist itd.) I pliki (.json lub inne niepotrzebne pliki) są dołączane do plików statycznych! –
Więcej informacji można znaleźć na stronie https://github.com/cyberdelia/django-pipeline/issues/482. –