Coloque arquivos estáticos em pastas diferentes do wwwroot
ambiente
- Estúdio Visual
 - 
- Visual Studio 2019
 
 - Núcleo ASP.NET
 - 
- 3.1 (Página de navalha, MVC)
 
 
Sobre o local de colocação padrão para arquivos estáticos
Arquivos estáticos (.js, .css, .png, etc.) estão determinados a estar sob a pasta wwwroot por padrão. Isso permite que os usuários do site vejam os arquivos .js e .css diretamente junto com HTML e reflita-os na tela.
A pasta de colocação padrão deste arquivo estático é wwwroot Startup.Configure porque ele chama o seguinte método descrito no app.UseStaticFiles método:
public class Startup
{
  // 省略
  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  {
    // 省略
    app.UseStaticFiles();
    // 省略
  }
}
O caminho da pasta física "wwwroot" é "https://<host name>/" na URL. Como exemplo, o arquivo em wwwroot\image\sample.png pode ser encontrado na URL em https://<host name>/image.png amp; sample.]
Os arquivos colocados fora da pasta wwwroot não são essencialmente referenciados a partir de uma URL na Web.
Como colocar arquivos estáticos além da pasta wwwroot e alterar o caminho de referência na URL
Configuração da pasta
Desta vez, quero deixar a função da pasta wwwroot, mas também colocar o arquivo de imagem em uma pasta separada para que possa ser referenciado na Web.
A configuração da pasta do projeto deve ser a seguinte, para que você possa ver os arquivos de imagem na pasta Conteúdo de cada site nas Áreas.
Neste estado, a URL .png o arquivo na amostra1.png
- https://<hostname>/arenas/site1/content/image/sample1.png
 
e
- https://<Hostname>/site1/content/image/sample1.png
 
pode parecer que seria, mas aqui
- https://<Hostname>/site1/image/sample1.png
 
a ser referenciado em .
A propósito, se você colocar um arquivo estático além da pasta wwwroot, a ação de compilação do arquivo pode estar faltando. Se você continuar a publicar, o arquivo não será colocado, por isso certifique-se de desvê-lo ao conteúdo.
Adicione um programa
Para disponibilizar arquivos estáticos em pastas não-wwwroot, Startup.Configure ligue para métodos adicionais app.UseStaticFiles no método da seguinte forma:
// 追加
using Microsoft.Extensions.FileProviders;
using System.IO;
// 省略
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  // 省略
  // wwwroot フォルダで静的ファイル参照を有効にする
  app.UseStaticFiles();
  // Site1 用の物理コンテンツフォルダと参照 URL を紐づける
  app.UseStaticFiles(new StaticFileOptions()
  {
    FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "Areas/Site1/Content")),
    RequestPath = "/Site1",
  });
  // Site2 用の物理コンテンツフォルダと参照 URL を紐づける
  app.UseStaticFiles(new StaticFileOptions()
  {
    FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "Areas/Site2/Content")),
    RequestPath = "/Site2",
  });
  // 省略
}
app.UseStaticFiles Chamar o método sem argumentos permite a pasta wwwroot.
Você pode adicionar configurações adicionais StaticFileOptions passando para o primeiro argumento.
StaticFileOptions.FileProvider Especifica a PhysicalFileProvider pasta física a que deseja que a propriedade se consulte como um arquivo estático ao passar por uma instância de .
O arquivo no caminho especificado aqui é um arquivo que pode ser referenciado na Web.
Também pode ser a RequestPath raiz da URL para as seguintes propriedades:
env.ContentRootPath A propriedade contém o caminho raiz (caminho físico) do programa Web.
É uma boa ideia combinar isso com o caminho relativo para a pasta alvo.
StaticFileOptions.RequestPath A propriedade descreve o caminho raiz da URL que faz referência ao arquivo estático.
O wwwroot padrão https://<ホスト名> é baseado em .
Como no RequestPath = "/Site1" código acima, se você escrever
https://<ホスト名>/Site1 é a raiz.
Isso Areas/Site1/Content/xxxx vincula o caminho físico https://<ホスト名>/Site1/xxxx com a URL.
Usando a amostra1.png como exemplo, Areas/Site1/Content/image/sample.png o arquivo pode ser https://<ホスト名>/Site1/image/sample.png referenciado no caminho.
Verificar a operação
index.html Coloque a tag img para que você possa ver a imagem da seguinte forma:
O caminho também faz referência às imagens do site1 e do site2 conforme definido.
<!-- 省略 -->
<div class="text-center">
	<h1 class="display-4">Welcome</h1>
	<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
<!-- ここから追加 -->
<img src="~/image/sample.png" />
<img src="~/site1/image/sample1.png" />
<img src="~/site2/image/sample2.png" />
<!-- ここまで追加 -->
Se você executá-lo e ver a imagem, é um sucesso.