Поставяне на статични файлове в папки, различни от wwwroot
Околната среда
- Визуално студио
-
- Изглед от 10 до 2008
- ASP.NET ядро
-
- 3.1 (Страницата на Бръснача, MVC)
Всичко за местоположението по подразбиране за статични файлове
Статичните файлове (.js, .css, .png и т.н.) по подразбиране се определят като под папката wwwroot. Това позволява на потребителите на уеб сайтове да виждат .js и .css файлове директно заедно с HTML и да ги отразяват на екрана.
Папката по подразбиране за този статичен файл е wwwroot, Startup.Configure
защото се изисква следния app.UseStaticFiles
метод, описан в метода:
public class Startup
{
// 省略
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 省略
app.UseStaticFiles();
// 省略
}
}
Пътят на физическата папка "wwwroot" е "https://<име на хост>/" в URL адреса. Например файлът в wwwroot\image\sample.png може да бъде намерен в URL адреса под https://<име на хост>/изображение.png усилвател.]
Файловете, поставени извън папката wwwroot, по същество не са посочени от URL адрес в уеб.
Как да поставите статични файлове в допълнение към wwwroot папка и промяна на пътя на препратката на URL адреса
Конфигуриране на папка
Този път искам да напусна функцията на папката wwwroot, но също така да поставя файла с изображения в отделна папка, така че да може да бъде посочен в уеб.
Конфигурацията на папката на проекта трябва да бъде както следва, така че можете да видите файловете с изображения в папката съдържание на всеки сайт в Области.
В това състояние URL адресът .png файла в примера1.png
- https://<хост име>/арена/site1/content/image/sample1.png
И
- https://<Име на хост>/site1/content/image/sample1.png
може да изглежда така, но тук
- https://<Име на хост>/site1/image/sample1.png
да се посочи в .
Между другото, ако поставите статичен файл в допълнение към папката wwwroot, изграждането на действието на файла може да липсва. Ако продължите да публикувате, файлът няма да бъде поставен, така че не забравяйте да го върнете на съдържанието.
Добавяне на програма
За да направите статични файлове в-wwwroot Startup.Configure
папки, обадете допълнителни app.UseStaticFiles
методи в метода, както следва:
// 追加
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
Извикване на метода без аргументи позволява на wwwroot папка.
Можете да добавите допълнителни StaticFileOptions
настройки, като преминавате към първия аргумент.
StaticFileOptions.FileProvider
Указва PhysicalFileProvider
физическата папка, към която искате да се нарича свойството като статичен файл при преминаване на екземпляр на .
Файлът под зададения тук път е файл, който може да бъде посочен в уеб.
Тя може да бъде корен на RequestPath
URL адреса за следните свойства:
env.ContentRootPath
Свойството съдържа коренния път (физически път) на уеб програмата.
Добре е да комбинирате това с относителния път към целевата папка.
StaticFileOptions.RequestPath
Свойството описва главния път на URL адреса, който препраща към статичния файл.
По подразбиране wwwroot https://<ホスト名>
се основава на .
Както в RequestPath = "/Site1"
горния код, ако пишете
https://<ホスト名>/Site1
е коренът.
Това Areas/Site1/Content/xxxx
свързва физически път с URL https://<ホスト名>/Site1/xxxx
адрес.
Използвайки пример 1.png като пример, Areas/Site1/Content/image/sample.png
файлът може да бъде https://<ホスト名>/Site1/image/sample.png
посочен в пътя.
Проверка на операцията
index.html
Поставете етикета img, така че да можете да видите изображението, както следва:
Пътят също препратки site1 и site2 изображения, както е дефинирано.
<!-- 省略 -->
<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" />
<!-- ここまで追加 -->
Ако го стартирате и видите изображението, това е успех.