Staatiliste failide paigutamine muudesse kaustadesse peale wwwrooti
Keskkond
- Visuaalstuudio
-
- Visuaalstuudio 2019
- ASP.NET Tuum
-
- 3.1 (Raseerija leht, MVC)
Staatiliste failide vaikepaigutuse asukoht
Staatilised failid (.js, .css, .png jne) on vaikimisi määratud kausta wwwroot alla. See võimaldab veebisaidi kasutajatel näha .js ja .css faile otse koos HTML-iga ja peegeldada neid ekraanil.
Selle staatilise faili vaikepaigutuskaust on Startup.Configure
wwwroot, kuna see kutsub järgmist app.UseStaticFiles
meetodis kirjeldatud meetodit:
public class Startup
{
// 省略
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 省略
app.UseStaticFiles();
// 省略
}
}
Füüsilise kausta "wwwroot" tee on URL-is "https://<host name>/". Näiteks faili wwwroot\image\sample.png leiate URL-ist aadressil https://<host name>/image.png amp; sample.]
Väljaspool kausta wwwroot paigutatud failidele ei viidata sisuliselt veebi URL-ist.
Staatiliste failide paigutamine lisaks kaustale wwwroot ja viitetee muutmine URL-is
Kausta konfiguratsioon
Seekord tahan jätta kausta wwwroot funktsiooni, kuid paigutada pildifaili ka eraldi kausta, et sellele saaks veebis viidata.
Projekti kausta konfiguratsioon peaks olema järgmine, et näeksite pildifaile iga ala sisukaustas.
Selles olekus .png URL faili näidises1.png
- https://<hostname>/arenas/site1/content/image/sample1.png
Ja
- https://<Hostname>/site1/content/image/sample1.png
see võib tunduda nii, aga siin
- https://<Hostname>/site1/image/sample1.png
millele viidatakse .
Muide, kui asetate staatilise faili lisaks kaustale wwwroot, võib faili järgutoiming puududa. Kui jätkate avaldamist, siis faili ei paigutata, nii et seadke see kindlasti tagasi sisu juurde.
Programmi lisamine
Staatiliste failide kättesaadavaks tegemiseks mitte-wwwroot Startup.Configure
kaustades helistage app.UseStaticFiles
meetodi täiendavatele meetoditele järgmiselt:
// 追加
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
Meetodi kutsumine ilma argumentideta lubab kausta wwwroot.
Täiendavaid sätteid saate StaticFileOptions
lisada, edastades esimese argumendi.
StaticFileOptions.FileProvider
Määrab PhysicalFileProvider
füüsilise kausta, millele atribuut peaks rakenduse eksemplari läbimisel viitama staatilise failina.
Siin määratud tee all olev fail on fail, millele saab veebis viidata.
See võib olla ka RequestPath
järgmiste atribuutide URL-i juur:
env.ContentRootPath
Atribuut sisaldab veebiprogrammi juurteed (füüsilist teed).
On hea mõte kombineerida see sihtkausta suhtelise teega.
StaticFileOptions.RequestPath
Atribuut kirjeldab staatilile failile viitava URL-i juurteed.
Vaike-wwwroot https://<ホスト名>
põhineb .
Nagu RequestPath = "/Site1"
ülaltoodud koodis, kui kirjutate
https://<ホスト名>/Site1
on juur.
See Areas/Site1/Content/xxxx
lingib füüsilise https://<ホスト名>/Site1/xxxx
tee URL-iga.
Näitena näidis1.png abil saab Areas/Site1/Content/image/sample.png
https://<ホスト名>/Site1/image/sample.png
failile viidata teel.
Kontrolli toimingut
index.html
Asetage img-silt nii, et näete pilti järgmiselt:
Tee viitab ka site1 ja site2 piltidele, nagu määratletud.
<!-- 省略 -->
<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" />
<!-- ここまで追加 -->
Kui sa seda käivitad ja näed pilti, on see edukas.