Используя django-конвейер локально

Как я могу просмотреть файлы в папке STATIC_ROOT при запуске локального сервера (./manage.py runserver 0.0.0.0:8000)? Я настроил django-pipe и collectstatic, как ожидалось, поместив минимизированный файл в каталог, обозначенный STATIC_ROOT. Тем не менее, запуск сервера и доступ к минимизированному файлу (в моем случае его http://localhost:8000/static/filterpages/js/vendor.js) дает мне 404 страницы не найдены.

Мое дерево каталогов

django_project/
├── filter
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── filterpages
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── static
│   │   └── filterpages
│   │       ├── js
│   │       └── vendor
│   │           ├── bootstrap.min.js
│   │           └── jquery-2.2.2.min.js
│   ├── templates
│   │   └── filterpages
│   │       ├── index.html
│   ├── templatetags
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── manage.py
└── staticfiles
    ├── admin
    └── filterpages
        ├── js
        │   ├── vendor.6238a90960e0.js
        │   └── vendor.js
        └── vendor
            ├── bootstrap.min.c5b5b2fa19bd.js
            ├── bootstrap.min.js
            ├── jquery-2.2.2.min.1d35678c5edb.js
            └── jquery-2.2.2.min.js

Мои settings.py

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

STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'

STATICFILES_DIRS = []

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.CachedFileFinder',
    'pipeline.finders.PipelineFinder',
    'pipeline.finders.FileSystemFinder',
)

PIPELINE = {
    'PIPELINE_ENABLED': True,
    'JAVASCRIPT': {
        'vendor': {
            'source_filenames': (
                'filterpages/vendor/jquery.min.js',
                'filterpages/vendor/bootstrap.min.js',
            ),
            'output_filename': 'filterpages/js/vendor.js',
        }
    }
}

PIPELINE['JS_COMPRESSOR'] = 'pipeline.compressors.yuglify.YuglifyCompressor'

1 ответ

Вы можете попробовать мой путь. В url.py (корневой URL, поместите в тот же каталог, где находится файл settings.py).

   from django.conf.urls.static import static
   urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

И перезапустите сервер и попробуйте снова получить доступ к файлу js

Другие вопросы по тегам