Django: обслуживание АДМИНИСТРАТОРСКИХ медиа-файлов

API HttpComponents изменился. Работает с кодом ниже.

public static HttpClient getTestHttpClient() {
    try {
        SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy(){
            @Override
            public boolean isTrusted(X509Certificate[] chain,
                    String authType) throws CertificateException {
                return true;
            }
        }, new AllowAllHostnameVerifier());

        SchemeRegistry registry = new SchemeRegistry();
        registry.register(new Scheme("https",8444, sf));
        ClientConnectionManager ccm = new ThreadSafeClientConnManager(registry);
        return new DefaultHttpClient(ccm);
    } catch (Exception e) {
        e.printStackTrace();
        return new DefaultHttpClient();
    }
}
18
задан Adrian Liem 4 July 2009 в 05:48
поделиться

5 ответов

Попробуйте изменить:

ADMIN_MEDIA_PREFIX = '/ static / media /'

Предполагается, что ваш каталог MEDIA_ROOT / media / содержит папку мультимедиа администратора (это то, что я понял из вашего вопрос).

1
ответ дан 30 November 2019 в 07:04
поделиться

Попробуйте

(r '^ admin_media /(.*)', 'django.views.static.serve', {'document_root': 'django / contrib / admin / media / ',' show_indexes ': True}),

в вашем файле urls.py. И измените свой

ADMIN_MEDIA_PREFIX = '/admin_media/'
2
ответ дан 30 November 2019 в 07:04
поделиться

Я только что исправил похожую ошибку на своем тестовом сайте. ADMIN_MEDIA_PREFIX и MEDIA_URL никогда не должны совпадать, см. Следующее примечание в документах :

Убедитесь, что вы используете косую черту в конце, и чтобы это отличалось от Параметр MEDIA_URL (поскольку тот же URL нельзя сопоставить с двумя разными наборы файлов).

2
ответ дан 30 November 2019 в 07:04
поделиться

Ваш ответ таков, что если ADMIN_MEDIA_PREFIX явно не устанавливает домен команда runserver будет обслуживать медиафайлы администратора из contrib.admin.

Я тоже был обожжен этим магическим поведением. Для этого был билет ( Ticket # 8336 ), но дизайнерское решение заключалось в том, чтобы оставить удобство и путаницу как есть.

Итак, чтобы обслуживать ваш административный носитель (для использования grappelli или любой другой административной оболочки вы хотите использовать) из ваших каталогов с помощью команды runserver , вы должны использовать что-то вроде:

MEDIA_ROOT =  os.path.join(PROJECT_ROOT, 'media/')
ADMIN_MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'admin-media/')
MEDIA_URL = '/site-media/'
ADMIN_MEDIA_PREFIX = 'http:/localhost:8000/admin-media/'

Я надеюсь, что я воскресил здесь правильный вопрос. Заранее приносим свои извинения.

32
ответ дан 30 November 2019 в 07:04
поделиться

Рекомендуется запустить сервер dev немного по-другому [1]. python manage.py runerver mydomain.com:8000 --adminmedia=/path/to/your/admin/media/

[1] http://code.google.com/p/django-grappelli/wiki/Installation

3
ответ дан 30 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: