একটি .NET MVC4
প্রকল্পে কিভাবে @Styles.Render
কাজ করে?
মানে, @Styles.Render("~/Content/css")
কোন ফাইলে ফোন দিচ্ছে?
আমার Content
ফোল্ডারের ভিতরে "সিএসএস" নামে একটি ফাইল বা ফোল্ডার নেই।
একটি .NET MVC4
প্রকল্পে কিভাবে @Styles.Render
কাজ করে?
মানে, @Styles.Render("~/Content/css")
কোন ফাইলে ফোন দিচ্ছে?
আমার Content
ফোল্ডারের ভিতরে "সিএসএস" নামে একটি ফাইল বা ফোল্ডার নেই।
উত্তর:
এটি সেই নির্দিষ্ট বান্ডেলে অন্তর্ভুক্ত ফাইলগুলিকে কল করছে যা ফোল্ডারে BundleConfig
শ্রেণীর অভ্যন্তরে ঘোষণা করা হয়েছে App_Start
।
সেই বিশেষ ক্ষেত্রে কলটি @Styles.Render("~/Content/css")
"~ / সামগ্রী / সাইট.css" কল করছে।
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*
ধরে *.*
ফাইল।
কেস সংবেদনশীলতা জন্য সতর্কতা অবলম্বন করুন। আপনার যদি একটি ফাইল থাকে
/Content/bootstrap.css
এবং আপনি আপনার Bundle.config এ পুনঃনির্দেশ করুন
.Include ( "~ / বিষয়বস্তু / Bootstrap.css")
এটি সিএসএস লোড করবে না।
পার্টিতে কিছুটা দেরি। তবে দেখে মনে হচ্ছে কেউ এর
বান্ডিলিং এবং মিনিফাইজেশন এর কথা উল্লেখ করেনি StyleBundle
, তাই ..
@Styles.Render("~/Content/css")
কল Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
যা ঘুরে ফিরে কল
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()
কার্যকরভাবে সম্মিলন & minifies bootstrap.css
& Site.css
একটি একক ফাইলের মধ্যে,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
তবে ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
শুধুমাত্র যখন debug
সেট করা false
থাকে Web.config
।
অন্যথায় bootstrap.css
& Site.css
স্বতন্ত্রভাবে পরিবেশন করা হবে।
বান্ডিল নয়, মাইনাইফ করা হয়নি:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
পোলো আমি একাধিক কারণে এমভিসিতে বান্ডিল ব্যবহার করব না। এটি আপনার ক্ষেত্রে কাজ করে না কারণ আপনার অ্যাপ্লিকেশনসস্টার্ট ফোল্ডারে আপনাকে একটি কাস্টম বান্ডেলকনফিগ শ্রেণি নির্ধারণ করতে হবে। আপনি যখন নিজের এইচটিএমএল এর মাথায় এমন স্টাইল যুক্ত করতে পারেন তখন এটির কোনও অর্থ হয় না:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
আপনি এগুলি একটি লেআউট.সি.এস.টি.এম.এল বা আংশিক শ্রেণিতে যুক্ত করতে পারেন যা আপনার সমস্ত দর্শন থেকে ডেকে প্রতিটি পৃষ্ঠায় ফেলে দেওয়া হয়েছে। যদি আপনার শৈলীর পরিবর্তন হয়, আপনি সহজেই পুনরায় কম্পাইল না করে নাম এবং পথ পরিবর্তন করতে পারেন।
ক্লাসে সিএসএসে হার্ড-কোডড লিঙ্কগুলি যুক্ত করার সাথে সাথে ইউআই এবং অ্যাপ্লিকেশন মডেল থেকে ডিজাইনের বিচ্ছিন্ন করার পুরো উদ্দেশ্যটি রয়েছে। আপনি সি # তে পরিচালিত হার্ড কোডড স্টাইল শিট পাথগুলিও চাইবেন না কারণ আপনি "স্কিনস" বা আলাদা ডিভাইস, থিম ইত্যাদি বলতে আলাদা স্টাইলের মডেল তৈরি করতে পারবেন না:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
এই সিস্টেম এবং রেজার ব্যবহার করে আপনি এখন কোনও ডাটাবেস বা ব্যবহারকারীর সেটিং থেকে স্কিন পাথ স্যুইচ আউট করতে পারেন এবং কেবলমাত্র গতিপথের পরিবর্তনে আপনার ওয়েবসাইটের পুরো নকশাটি পরিবর্তন করতে পারেন।
১৫ বছর আগে সিএসএসের পুরো উদ্দেশ্য ছিল সাইটগুলির জন্য ব্যবহারকারী-নিয়ন্ত্রিত এবং অ্যাপ্লিকেশন-নিয়ন্ত্রিত স্টাইল শীট "স্কিনস" উভয়ই বিকাশ করা যাতে আপনি ইউআই চেহারা পরিবর্তন করতে পারেন এবং অ্যাপ্লিকেশন থেকে পৃথক বোধ করতে পারেন এবং ডেটা কাঠামোর বাইরে পৃথক বিষয়বস্তুটিকে নতুন করে তৈরি করতে পারেন। .... উদাহরণস্বরূপ একটি মুদ্রণযোগ্য সংস্করণ, মোবাইল, অডিও সংস্করণ, কাঁচা এক্সএমএল ইত্যাদি
এখন এই "পুরাতন ধাঁচের" দিকে ফিরে যান, সি # ক্লাস ব্যবহার করে হার্ড-কোডড পাথ সিস্টেম, বুটস্ট্র্যাপের মতো অনমনীয় শৈলী এবং অ্যাপ্লিকেশন কোডের সাথে সাইটের থিমগুলি মার্জ করে, আমরা কীভাবে ওয়েবসাইটগুলি 1998 সালে নির্মিত হয়েছিল তার দিকে আমরা আবার পিছনে চলে এসেছি।
minification
তারপর হ্যাক ? : এস / :(
আমি এমভিসি 3 ওয়েবে বন্ডলিং যুক্ত করার জন্য প্রয়োজনীয় সমস্ত কাজ করেছি (আমি বিদ্যমান সমাধানে নতুন)। Styles.Render
আমার জন্য কাজ করেনি। আমি অবশেষে আবিষ্কার করলাম আমি কেবল একটি কোলন অনুপস্থিত। একটি মাস্টার পৃষ্ঠাতে: <%: Styles.Render("~/Content/Css") %>
কেন এখনও (একই পৃষ্ঠায়) কোলন ছাড়াই<% Html.RenderPartial("LogOnUserControl"); %>
কাজ করে তা সম্পর্কে আমি বিভ্রান্ত ।