Почему порядок между UseStaticFiles и UseDefaultFiles имеет значение? - PullRequest
0 голосов
/ 31 декабря 2018

Я понимаю, что порядок регистрации для промежуточного программного обеспечения может иметь значение .Однако, не дано, что это обязательно так.

Я заметил, что UseDefaultFiles () должен предшествовать UseStaticFiles () (который можно аккуратно обойти с помощью UseFileServer () ).

Я не понимаю, почему.Как они сталкиваются?!

Я погуглил проблему, но получил нулевую мотивацию на , почему порядок важен в данном конкретном случае.Только то, что это важно ...

Ответы [ 3 ]

0 голосов
/ 31 декабря 2018

UseDefaultFiles () всегда должно быть раньше UseStaticFiles ().

Это потому, что UseDefaultFiles переписывают URL-адреса.Использовать статические файлы можно только по URL-адресам.

Если подача документа происходит раньше, чем перезапись URL-адреса, то вы не сможете получить документ по умолчанию.

Ссылка: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-2.2#serve-a-default-document

0 голосов
/ 31 декабря 2018

Взято из документации по Статические файлы в ASP.NET Core (в разделе Обслуживание документа по умолчанию есть важная заметка).

UseDefaultFiles должен быть вызван до UseStaticFiles для обслуживания файла по умолчанию.UseDefaultFiles - это средство переписывания URL, которое фактически не обслуживает файл.Включите статическое промежуточное программное обеспечение файла через UseStaticFiles для обслуживания файла.

Исходя из этого, важно сначала настроить средство переопределения URL-адресов (UseDefaultFiles), прежде чем предоставлять фактический файл (UseStaticFiles).
Если нет, то UseStaticFilesПромежуточное программное обеспечение включится первым, но запрос к корню приложения не сообщит промежуточному программному обеспечению, какой «файл» следует обслуживать.Когда вы убедитесь, что перезапись выполняется в первую очередь, запрос к корню приложения будет переписан как запрос (один из) файлов по умолчанию.

0 голосов
/ 31 декабря 2018

Из документов :

UseDefaultFiles необходимо вызвать до UseStaticFiles для обслуживания файла по умолчанию.UseDefaultFiles - это средство перезаписи URL, которое фактически не обслуживает файл.Включите статическое файловое промежуточное ПО через UseStaticFiles для обслуживания файла.

Порядок промежуточного программного обеспечения имеет значение, поэтому, например, UseStaticFiles должен предшествовать UseMvc в качестве механизма MVCбудет обрабатывать все запросы.В этом случае UseDefaultFiles просто переписывает URL-адрес и передает его промежуточному программному обеспечению UseStaticFiles для обслуживания.

...