404 с содержанием stati c в Razor Class Library (RCL) - PullRequest
0 голосов
/ 03 февраля 2020

У меня возникают проблемы с реализацией файлов stati c в библиотеке классов бритвы (. net Core 3.1), которые используются приложением ASP. NET Core (v3.1).

При попытке получить доступ к файлам stati c я получаю только 404. Не найдено.

Я следовал следующему ответу в Stackoverflow: { ссылка } или

Я также проверил документацию по адресу: https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-3.0&tabs=visual-studio#create -an-rcl-with-stati c -assets .

Я поместил файл css в библиотеку в следующем месте: wwwroot\css\Base.css, и я протестировал следующий путь: https://localhost: 44300 / _content / OurIt.Cockpit / css / Base. css, что приводит к ответу 404 Не найдено.

То, что я уже проверил:

  • Можно просматривать любой контроллер с его представлениями внутри RCL, и они прекрасно работают (отображается HTML код подается в браузер)
  • Наличие app.UseStaticFiles(); в веб-приложении.
  • Наличие webBuilder.UseStaticWebAssets(); в веб-приложении.
  • Правильный корпус.
  • Действие Build из wwwroot\css\Base.css установлено на Содержимое .
  • Для проекта RCL определен следующий sdk: <Project Sdk="Microsoft.NET.Sdk.Razor">.
  • В проекте RCL установлены следующие свойства:

    <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <AddRazorSupportForMvc>true</AddRazorSupportForMvc> <PropertyGroup>

Я также попробовал способ, описанный в этом ответе: { ссылка } и я попытался получить доступ к файлу с https://localhost: 44300 / path / css / Base. css

Есть ли шанс отладить или обнаружить проблему? В соответствии с документацией Microsoft:

При создании RCL создается манифест, описывающий местоположения веб-ресурсов stati c. Потребляющее приложение читает манифест во время выполнения, чтобы использовать ресурсы из ссылочных проектов и пакетов.

Чтобы убедиться, что файлы находятся в сборке, я пытался найти этот манифест, но не смог его найти или не знаю, где его искать (я проверил папки вывода). Я также попытался открыть RCL с помощью ILSpy, надеясь найти ответ на этот вопрос.

Любые идеи (или рабочие примеры с RCL с содержимым stati c для. NET Core 3.1 - я нашел только образцы для контроллеров / представлений, но не с содержанием stati c)?

Обновление 2020-02-05:

Я создал образец на Github для воспроизведения: https://github.com/DominikAmon/RclIssueDemo

1 Ответ

0 голосов
/ 18 марта 2020

Если вы удалите ссылку на Microsoft.As pNet .Core из проекта RclDemo.Library, то все будет работать как положено. Эта строка должна быть удалена из файла проекта:

Если вы создадите новое приложение. NET Core 3.x, вы не включите эту ссылку, как сейчас включены как часть ссылки на структуру Microsoft.AspNetCore.App. Файлы Stati c работали по-другому в. NET Core 2.2 Razor Class Libraries, и я думаю, что ваше включение библиотеки Microsoft.AspNetCore. Mvc v2.2.0 ломает вещи. Раньше была дополнительная конфигурация для включения stati c файлов в RCL.

Shawn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...