جامد مسلیں ان پوشوں میں رکھیں جو ڈبلیو ڈبلیو روٹ کے علاوہ ہیں

صفحہ تخلیق تاریخ :

ماحول

بصری سٹوڈیو
  • ویژیول سٹوڈیو 2019
ASP.NET کور
  • 3.1 (ریزر صفحہ، ایم وی سی)

جامد مسلیں کے لیے طے شدہ جگہ جگہ کے بارے میں

جامد مسلیں (.js، .css، .png وغیرہ) طے شدہ طور پر ڈبلیو ڈبلیو ڈبلیو روٹ فولڈر کے تحت ہونے کا تعین کرتی ہیں۔ اس سے ویب سائٹ صارفین ایچ ٹی ایم ایل کے ساتھ براہ راست .js اور .css فائلیں دیکھ سکتے ہیں اور سکرین پر ان کی عکاسی کر سکتے ہیں۔

اس جامد مسل کے لیے طے شدہ پلیسمنٹ پوشہ ڈبلیو روٹ ہے کیونکہ یہ طریقہ کار Startup.Configure میں بیان کردہ درج ذیل طریقہ کار کو کال کرتا app.UseStaticFiles ہے:

public class Startup
{
  // 省略

  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  {
    // 省略

    app.UseStaticFiles();

    // 省略
  }
}

جسمانی پوشہ کا راستہ "ڈبلیو روٹ" یو آر ایل میں "tpp///لیفٹیننٹ؛میزبان نام>/" ہے۔ مثال کے طور پر، مسل ان ڈبلیو ڈبلیو روٹ\تصویر\نمونہ.png یو آر ایل میں نام>/تصویر.png اور نمونہ کے تحت پایا جا سکتا ہے۔]

ڈبلیو ڈبلیو روٹ پوشہ کے باہر رکھی گئی مسلیں لازمی طور پر ویب پر ایک یو آر ایل سے حوالہ نہیں دی جاتی ہیں۔

ڈبلیو روٹ فولڈر کے علاوہ جامد مسلیں کیسے رکھیں اور یو آر ایل پر حوالہ راستہ تبدیل کریں

پوشہ تشکیل

اس بار، میں ڈبلیو ڈبلیو ڈبلیو روٹ فولڈر کے فنکشن کو چھوڑنا چاہتا ہوں، لیکن تصویر مسل کو ایک علیحدہ فولڈر میں بھی رکھنا چاہتا ہوں تاکہ اسے ویب پر حوالہ دیا جا سکے۔

منصوبہ کی پوشہ تشکیل درج ذیل ہونی چاہیے، تاکہ آپ علاقوں میں ہر سائٹ کے مشمول پوشہ میں تصویر مسلیں دیکھ سکیں۔

اس حالت میں یو آر ایل نمونہ 1 میں فائل .png.png

  • اسٹیپیز//لیفٹیننٹ؛میزبان نام>/اکھاڑے/سائٹ1/مواد/تصویر/نمونہ1.png

اور

  • tp//لیفٹیننٹ؛ہوسٹنیم>/سائٹ1/مواد/تصویر/نمونہ1.png

ایسا لگتا ہے کہ ایسا ہو سکتا ہے، لیکن یہاں

  • tp///لیفٹیننٹ؛ہوسٹنیم>/سائٹ1/تصویر/نمونہ1.png

میں حوالہ دیا جائے.

ویسے اگر آپ نے ایک جامد مسل کو ڈبلیو روٹ پوشہ کے علاوہ رکھا ہے تو مسل کی تعمیر عمل غائب ہو سکتی ہے۔ اگر آپ شائع کرتے رہیں تو مسل نہیں رکھی جائے گی، لہذا اسے دوبارہ مشمول پر سیٹ کرنا یقینی بنائیں۔

پروگرام شامل کریں

غیر-ڈبلیو ڈبلیو روٹ پوشوں میں جامد مسلیں دستیاب کرانے کے لیے، طریقہ کار میں اضافی طریقوں کو 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 بغیر دلائل کے طریقہ کار کو کال کرنے سے ڈبلیو ڈبلیو روٹ فولڈر فعال ہو جاتا ہے۔ آپ پہلی دلیل پر منتقل ہو کر اضافی سیٹنگیں شامل کر سکتے StaticFileOptions ہیں۔

StaticFileOptions.FileProvider اس مادی پوشہ کی تخصیص کرتا ہے جس کی PhysicalFileProvider مثال پاس کرتے وقت آپ چاہتے ہیں کہ پراپرٹی کو جامد فائل کہا جائے۔ یہاں متعین کردہ راستے کے تحت مسل ایک مسل ہے جس کا حوالہ ویب پر دیا جا سکتا ہے۔ یہ درج ذیل خصوصیات کے لیے یو آر ایل کی جڑ بھی ہو سکتی RequestPath ہے:

env.ContentRootPath پراپرٹی ویب پروگرام کی جڑ کا راستہ (جسمانی راستہ) پر مشتمل ہے۔ ہدف پوشہ کے نسبتی راستے کے ساتھ اس کو جوڑنا ایک اچھا خیال ہے۔

StaticFileOptions.RequestPath پراپرٹی یو آر ایل کے جڑ کے راستے کو بیان کرتی ہے جو جامد فائل کا حوالہ دیتی ہے۔ ڈیفالٹ ڈبلیو ڈبلیو روٹ https://<ホスト名> کی بنیاد پر ہے۔ جیسا کہ RequestPath = "/Site1" مندرجہ بالا کوڈ میں ہے، اگر آپ لکھتے ہیں https://<ホスト名>/Site1 جڑ ہے. یہ Areas/Site1/Content/xxxx جسمانی راستے کو یو آر ایل سے جوڑتا https://<ホスト名>/Site1/xxxx ہے۔

نمونہ1.png بطور مثال استعمال کرتے ہوئے، Areas/Site1/Content/image/sample.png مسل کو راستے میں حوالہ دیا جا سکتا https://<ホスト名>/Site1/image/sample.png ہے۔

عملیہ پڑتال کریں

index.html آئی ایم جی ٹیگ رکھیں تاکہ آپ تصویر کو درج ذیل طور پر دیکھ سکیں: راستہ وضاحت کے مطابق سائٹ 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" />
<!-- ここまで追加 -->

اگر آپ اسے چلاتے ہیں اور تصویر دیکھتے ہیں تو یہ ایک کامیابی ہے۔