Развертывание пользовательской статической папки под wwwroot - PullRequest
0 голосов
/ 05 февраля 2019

У нас есть пользовательская папка под wwwroot с именем Содержимое с некоторыми внутренними папками, формирующими структуру для организации последующих загружаемых файлов, в режиме публикации она не развертывается (на локальном или на сервере).)

Вот часть нашего кода, которая вас может заинтересовать:

app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), "Contents")),
    RequestPath = "/Contents"
});

Есть предложения и решения?Любая идея, почему это не развернуто?

Обновление:

В .csProj у нас есть это:

  <ItemGroup>
    <Folder Include="Contents\H2X\" />
    <Folder Include="ServerContent\H123\" />
  </ItemGroup>  

У нас есть файл H2X.publishSettings, который генерируется сервером и содержит некоторые из наших учетных данных.

   msdeploySite="213" 
   destinationAppUrl="123" 
   profileName="Default Settings" 
   publishMethod="MSDeploy" userName="123" 
   AllowUntrustedCertificate="True"

Что-то пропущено?

Я немного отошел от разработки некоторое время, теперь мой разработчик, кажется, застрял с этим, хотел помочь ему.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Если папка Contents внутри wwwroot , добавьте

<Content Include="wwwroot\**\*" CopyToPublishDirectory="PreserveNewest" />

и вам не нужно настраивать папку Contents как статическуюфайл провайдера в Startup.cs , строка выше будет включать все подпапки и файлы внутри wwwroot.

И если папка Contents вне wwwroot затем добавьте

<Content Include="Contents\**\*" CopyToPublishDirectory="PreserveNewest" />

и вам необходимо настроить папку Contents в качестве поставщика статических файлов в Startup.cs

0 голосов
/ 05 февраля 2019

В хостинговой среде ASP.NET Core есть два свойства, которые часто используются при построении физического пути к файлу или каталогу.

_hostingEnvironment.WebRootPath сопоставляется непосредственно с каталогом wwwroot по умолчанию:

_hostingEnvironment.ContentRootPath сопоставляется на уровень выше, обычно там, где находится файл startup.cs.

Для загрузки файловнепосредственно в папку, расположенную в папке wwwroot, используйте WebRootPath для создания необходимого пути.

...