Τοποθέτηση στατικών αρχείων σε φακέλους εκτός του wwwroot
Περιβάλλον
- Οπτικό Στούντιο
-
- Οπτικό Στούντιο 2019
- 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 στο Web.
Τρόπος τοποθέτησης στατικών αρχείων εκτός από το φάκελο wwwroot και αλλαγής της διαδρομής αναφοράς στη διεύθυνση URL
Ρύθμιση παραμέτρων φακέλου
Αυτή τη φορά, θέλω να αφήσω τη λειτουργία του φακέλου wwwroot, αλλά και να τοποθετήσω το αρχείο εικόνας σε ξεχωριστό φάκελο, ώστε να μπορεί να γίνει αναφορά στο Web.
Η ρύθμιση παραμέτρων φακέλου του έργου πρέπει να έχει ως εξής, ώστε να μπορείτε να δείτε τα αρχεία εικόνας στο φάκελο "Περιεχόμενο" κάθε τοποθεσίας στις "Περιοχές".
Σε αυτήν την κατάσταση, η διεύθυνση URL .png το αρχείο στο δείγμα1.png
- https://<όνομα κεντρικού υπολογιστή>/αρένες/τοποθεσία1/περιεχόμενο/εικόνα/δείγμα1.png
Και
- Https://<Όνομα κεντρικού υπολογιστή>/τοποθεσία1/περιεχόμενο/εικόνα/δείγμα1.png
μπορεί να φαίνεται σαν να είναι, αλλά εδώ
- https://<Όνομα κεντρικού υπολογιστή>/τοποθεσία1/εικόνα/δείγμα1.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
φυσικό φάκελο στον οποίο θέλετε να αναφέρεται η ιδιότητα ως στατικό αρχείο κατά τη μεταβίβαση μιας παρουσίας του .
Το αρχείο κάτω από τη διαδρομή που καθορίζεται εδώ είναι ένα αρχείο στο οποίο μπορείτε να γίνετε αναφορά στο Web.
Μπορεί επίσης να είναι η RequestPath
ρίζα της διεύθυνσης URL για τις ακόλουθες ιδιότητες:
env.ContentRootPath
Η ιδιότητα περιέχει τη διαδρομή ρίζας (φυσική διαδρομή) του προγράμματος Web.
Είναι καλή ιδέα να το συνδυάσετε με τη σχετική διαδρομή προς το φάκελο προορισμού.
StaticFileOptions.RequestPath
Η ιδιότητα περιγράφει τη διαδρομή ρίζας της διεύθυνσης URL που αναφέρεται στο στατικό αρχείο.
Το προεπιλεγμένο wwwroot https://<ホスト名>
βασίζεται στο .
Όπως στον RequestPath = "/Site1"
παραπάνω κώδικα, αν γράψετε
https://<ホスト名>/Site1
είναι η ρίζα.
Αυτό Areas/Site1/Content/xxxx
συνδέει τη φυσική διαδρομή με τη διεύθυνση https://<ホスト名>/Site1/xxxx
URL.
Χρησιμοποιώντας το δείγμα1.png ως παράδειγμα, Areas/Site1/Content/image/sample.png
το αρχείο μπορεί να https://<ホスト名>/Site1/image/sample.png
αναφέρεται στη διαδρομή.
Λειτουργία ελέγχου
index.html
Τοποθετήστε την ετικέτα img έτσι ώστε να μπορείτε να δείτε την εικόνα ως εξής:
Η διαδρομή αναφέρεται επίσης σε εικόνες τοποθεσίας1 και τοποθεσίας2, όπως ορίζεται.
<!-- 省略 -->
<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" />
<!-- ここまで追加 -->
Αν το τρέξεις και δεις την εικόνα, είναι επιτυχία.