Почему Django генерирует HTTP 500 ошибок для статических медиа, когда Отладка имеет значение false?

Создать пользовательский инициализатор контекста:

public class MyDbContextInitializer : MigrateDatabaseToLatestVersion<MyDbContext, Migrations.Configuration>
{
    public override void InitializeDatabase(MyDbContext context)
    {
        bool exists = context.Database.Exists();

        base.InitializeDatabase(context);

        if (!exists)
        {         
            MyDbSeed.Seed(context);
        }
    }       
}

Обратите внимание, что Migrations.Configuration - это класс, генерирующий командную строку миграции в консоли диспетчера пакетов. Вам может потребоваться изменить внутренний на публичный модификатор класса Migrations.Configuration.

И зарегистрировать его из своего OmModelCreating:

public partial class MyDbContext : DbContext
{

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Database.SetInitializer<MyDbContext>(new MyDbContextInitializer());

        //other code for creating model
    }
}
5
задан Hedde van der Heide 2 May 2013 в 08:10
поделиться

2 ответа

Я настоятельно рекомендовал бы разрешение Вашему веб-серверу обработать статические запросы, не добираясь до Django. В моем urls.py, Я только добавляю статический обработчик запросов, когда отладка имеет значение true.

Технически, Django, служащий помехам, хорошо работает все же. Определенно прочитайте короткую страницу документов, http://docs.djangoproject.com/en/dev/howto/static-files/. Вы захотите использовать запись как это в urls.py

(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})
12
ответ дан 18 December 2019 в 09:11
поделиться

Это кажется, что Вы могли бы пытаться служить своим статическим медиа с помощью сервера разработки Django. Смотрите на http://docs.djangoproject.com/en/dev/howto/deployment/ для некоторых сценариев/практических руководств развертывания и http://docs.djangoproject.com/en/dev/howto/static-files/ для того, как служить статическим файлам (но отметить правовую оговорку о не использовании тех методов в производстве).

В целом я посмотрел бы на Ваши журналы сервера и видел бы, откуда это пытается выбрать файлы. Я подозреваю, что эти 500 ошибок являются действительно 404 ошибками, но они становятся 500 ошибками, потому что Django не может найти или представить шаблон 404.html. Если это не так было бы полезно, если Вы могли бы отправить определенные 500 ошибок, Вы добираетесь.

6
ответ дан 18 December 2019 в 09:11
поделиться
Другие вопросы по тегам:

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