Основной ответ
Если он не существует, создайте папку wwwroot
в своем проекте и создайте подпапки, такие как css
, img
, js
в папке wwwroot
, чтобы у вас было что-то вроде этого:
wwwroot\css
wwwroot\img
wwwroot\js
Метод UseStaticFiles()
ищет папку wwwroot
и делает ее работоспособной.
Следующее, что вам нужно убедиться, это то, что ваш файл .csproj для проекта содержит следующее:
<ItemGroup>
<None Include="wwwroot\*" />
</ItemGroup>
Что в основном говорит о том, что все подпапки и файлы в wwwroot будут опубликованы.
С этой настройкой ваш cfg.CustomStylesheetUri = new Uri("/css/custom.css", UriKind.Relative)
код теперь должен работать.
Альтернативный вариант
В качестве другого варианта, если вы хотите обслуживать свой файл css из другого каталога за пределами wwwroot, вам нужно будет указать параметр StaticFileOptions
в методе UseStaticFiles()
, чтобы обслуживать ваш css. Вот мой рабочий пример, но с ReDoc .
Я использую NSwag , который расширяет Swagger для генерации и дальнейшей настройки моего файла спецификации OpenAPI. ( ReDoc через NSwag использует CustomStylesheetUri
вставка InjectStylesheet
, но я думаю, что он работает так же ).
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "Content")),
RequestPath = "/Content"
});
app.UseSwagger();
app.UseSwaggerUi3();
app.UseReDoc(c => {
c.Path = "/redoc";
c.DocumentPath = "/swagger/v1/swagger.json";
c.CustomStylesheetUri = new Uri("/Content/redoc-styles.css", UriKind.Relative); //added towards the end of the <head>
c.CustomJavaScriptUri = new Uri("/Content/redoc-javascript.js", UriKind.Relative); //added at the end of the <body>
});
Приведенный выше код ссылается на созданную мной папку с именем Content , в которую я добавил файлы css и js . Моя папка находится в корне проекта: MyAPIProject / Content / redoc-styles.css
Наряду с этим вторым примером, еще одна вещь, которую нужно убедиться, это то, что ваш файл .csproj содержит соответствующие записи (в противном случае папка и файлы не будут опубликованы):
<ItemGroup>
<Content Include="Content\css\redoc-styles.css">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="Content\js\redoc-javascript.js">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>