در دنباله آموزش Tag Helper ها می خواهم دو Tag Helper سودمند برای تگ های link و script را معرفی کنم. تگ script برای افزودن کدهای جاوا اسکریپت یا افزودن یک فایل حاوی کدهای جاوا اسکریپت و تگ link برای افزودن یک فایل حاوی کدهای سی اس اسبه کار می روند. style تگ دیگری که در ارتباط با سی اس اس است که درون آن کدهای سی اس اس تعریف می شوند ولی با تگ link یک فایل جدا با پسوند سی اس اس داریم که کدهای سی اس اس درون آن هستند و سپس این فایل را با link پیوست می کنیم.

در نوشته فایل های ایستا در ASP.NET Core MVC درباره پوشه wwwroot پروژه های ASP.NET Core گفتیم که این پوشه دارای سه زیر پوشه پیش فرض به نام های css و js و lib است که فایل های مربوطه در آنها نگهداری می شوند. همچنین می توانید تصویرها را نیز در زیر پوشه wwwroot نگهداری کنید. به طور کلی از wwwroot برای نگهداری فایل های ایستا (Static File) کمک گرفته می شود.

عبارت asp-src-include

از تگ script به دو گونه می توانیم کمک بگیریم، روش یکم آن است که کدهای جاوا را سر راست میان <script> و <script/> بنویسیم و یا اینکه کدها را در یک فایل با پسوند js نوشته و سپس مسیر فایل را به ویژگی scr آن بدهیم که این فایل می تواند در کنار پروژه یا بر روی اینترنت باشد.

اگر همه فایل های js درون مسیر wwwroot/js باشند، پس مسیردسترسی به آنها js/~ خواهد بود که ~ به پوشه wwwroot اشاره دارد. بنابراین برای نمونه برای دسترسی به فایل js_script1.js باید مسیر js/js_script1.js/~ را به ویژگی src بدهیم و از این رو اگر شما چندین فایل js درون یک پوشه داشته باشید، پس باید مسیر تک تک آنها را به ویژگی scr برای هر یک از تگ های script بدهیم.

راه ساده تری که ASP.NET Core فراهم کرده است، به کار گیری عبارتی به نام asp-src-include است که ویژگی scr را با مقدار درست به تگ script می افزاید. این عبارت را می توان برای افزودن یک یا چندین فایل اسکریپت جاوا اسکریپت از یک یا چندین پوشه و همزمان به کار برد. گمان کنید می خواهیم سه فایل به نام های js_script1.js و js_script2.js و js_script3.js را در تگ های script به کار ببریم. به طور دستی نیاز به سه تا تگ script داریم ولی با asp-src-include در سمت سرور یکبار تگ script می نویسیم و در سوی کلاینت سه تا تگ ساخته می شود.

در کد بالا js/*.js/~ یعنی اینکه همه فایل هایی که دارای پسوند js هستند و در زیر پوشه js در زیر پوشه wwwroot هستند را برای مقدار src از یک تگ script به کار می گیریم. اکنون گمان کنید که بیش از یک پوشه در زیر پوشه wwwroot داریک که فایل جاوا اسکریپت در آن است. برای نمونه دو پوشه js و lib هر یک خودشان یا زیر پوشه های آنها درای فایل های js دست نویس برنامه نویس یا کتابخانه هایی مانند جی کوئری هستند.

در کد بالا js.*/**/~ به کار بردن ** بدین معنی است که همه پوشه و زیر پوشه های درون wwwroot و همه فایل هایی که دارای پسوند js هستند به کار گرفته شوند. کد زیر برآیند دستور بالا را نشان می دهد. همچنین شکل زیر بخشی اززیر پوشه های درون wwwroot را نشان می دهد که در زیر lib چندین زیر پوشه دیگر برای کتابخانه هایی مانند جی کوئری است.

CDN و Fallback

واژه CDN کوتاه شده Content Delivery Network است و فضاهایی وب یا ابری هستند که از فایل هایی مانند سی اس اس و جاوا اسکریپت میزبانی می کنند. چرایی به کار گیری CDN ها برای میزبانی فایل بر روی وب این است که می خواهیم بار کاری برای دسترسی، باز کردن و خواندن فایل را بر روی سرور کاهش دهیم. بنابراین با CDN ها سرعت خواندن فایل های وب بالا می رود.

در ASP.NET Cire چندین عبارت به عنوان Tag Helper هست که برخی از آنها عبارتند از ۱) asp-fallback-href و ۲) asp-fallback-test-class و ۳) asp-fallback-test-property و ۴) asp-fallback-test-value هست که برای تگ link به کار می روند. در دستور زیر سر راست نشانی URL فایل سی اس اس روی اینترنت را به ویژگی href داده ایم. عبارت نام یا محل قرار گیری فایل سی اس اس که برای Fallback است را مشخص می کند. همانگونه که می بینید یک آدرس محلی بر روی سرور داده شده است.