ASP.NET कोर में बूटस्ट्रैप 4 का उपयोग कैसे करें


111

मैं NuGet के साथ ASP.NET Core में बूटस्ट्रैप को अपडेट करना चाहता हूं। मैंने इसका उपयोग किया:

Install-Package bootstrap -Version 4.0.0

इसने आश्रितों को जोड़ा लेकिन मैं इसे अपनी परियोजना में अब कैसे जोड़ूं? स्थानीय नुगेट निर्भरताओं के लिए मार्ग क्या है?

स्थापित एनजीईटी निर्भरताएँ


3
: BS4 बोवर समर्थन (स्रोत नहीं होना चाहिए getbootstrap.com/docs/4.0/migration/#breaking )
Klooven

Bootstrap@4.0.0-beta.3 को bootstrap@4.0.0 से बदलें: stackoverflow.com/questions/47985337/…
mrapi

1
वर्तमान में यह स्वीकृत उत्तर होना चाहिए, लिबमैन का सबसे आसान उपयोग करना: stackoverflow.com/a/53012140/578552
rfcdejong

संस्करण 4.4.1 NUGET द्वारा अब संगत।
डिएगो वेन्केशियो

जवाबों:


222

जैसा कि दूसरों ने पहले ही उल्लेख किया है, पैकेज मैनेजर बोवर , जो आमतौर पर इस तरह की निर्भरता के लिए उपयोग किया जाता था जो कि भारी क्लाइंट-साइड स्क्रिप्टिंग पर भरोसा नहीं करता है, बाहर जाने के रास्ते पर है और सक्रिय रूप से अन्य समाधानों की ओर बढ़ने की सिफारिश कर रहा है:

..psst! जबकि बोवर बनाए रखा जाता है, हम नए फ्रंट-एंड प्रोजेक्ट्स के लिए यार्न और वेबपैक की सलाह देते हैं!

इसलिए यद्यपि आप अभी भी इसका उपयोग कर सकते हैं, बूटस्ट्रैप ने भी इसके लिए समर्थन छोड़ने की घोषणा की है । नतीजतन, अंतर्निहित ASP.NET कोर टेम्प्लेट को धीरे-धीरे संपादित किया जा रहा है ताकि वह उससे भी दूर जा सके।

दुर्भाग्य से, आगे कोई स्पष्ट रास्ता नहीं है। यह ज्यादातर इस तथ्य के कारण है कि वेब एप्लिकेशन लगातार क्लाइंट-साइड में आगे बढ़ रहे हैं, जिसके लिए जटिल क्लाइंट-साइड बिल्ड सिस्टम और कई निर्भरताएं आवश्यक हैं। तो अगर आप ऐसा कुछ बना रहे हैं, तो आप पहले से ही जानते हैं कि इसे कैसे हल किया जाए, और आप अपनी मौजूदा निर्माण प्रक्रिया का विस्तार करने के लिए बस बूटस्ट्रैप और jQuery शामिल कर सकते हैं।

लेकिन अभी भी कई वेब एप्लिकेशन हैं जो क्लाइंट-साइड पर भारी नहीं हैं, जहां एप्लिकेशन अभी भी मुख्य रूप से सर्वर पर चलता है और परिणामस्वरूप सर्वर स्थिर विचारों को कार्य करता है। बोवर ने पहले इसे केवल क्लाइंट-साइड निर्भरता को प्रकाशित करने के लिए आसान बना दिया, ताकि यह बहुत अधिक प्रक्रिया के बिना हो।

.NET की दुनिया में भी हमारे पास NuGet है और पिछले ASP.NET संस्करणों के साथ, हम NuGet के साथ-साथ कुछ क्लाइंट-साइड निर्भरता के लिए निर्भरता को जोड़ने के लिए उपयोग कर सकते हैं क्योंकि NuGet सिर्फ हमारे प्रोजेक्ट में सामग्री को सही ढंग से रखेगा। दुर्भाग्य से, नए .csprojप्रारूप और नए NuGet के साथ, स्थापित पैकेज हमारी परियोजना के बाहर स्थित हैं, इसलिए हम केवल उन संदर्भ नहीं दे सकते।

यह हमारी निर्भरता को जोड़ने के कुछ विकल्पों के साथ हमें छोड़ देता है:

एक बार की स्थापना

यह वही है जो ASP.NET कोर टेम्प्लेट्स, जो कि सिंगल-पेज एप्लिकेशन नहीं हैं, वर्तमान में कर रहे हैं। जब आप एक नया एप्लिकेशन बनाने के लिए उन का उपयोग करते हैं, तो wwwrootफ़ोल्डर में बस एक फ़ोल्डर libहोता है जिसमें निर्भरताएं होती हैं:

wwwroot फ़ोल्डर में स्थिर निर्भरता के साथ lib फ़ोल्डर है

यदि आप वर्तमान में फाइलों को करीब से देखते हैं, तो आप देख सकते हैं कि उन्हें मूल रूप से टेम्पलेट बनाने के लिए बोवर के साथ रखा गया था, लेकिन जल्द ही इसमें बदलाव होने की संभावना है। मूल विचार यह है कि फ़ाइलों को एक बारwwwroot फ़ोल्डर में कॉपी किया जाता है ताकि आप उन पर निर्भर रह सकें।

ऐसा करने के लिए, हम बस बूटस्ट्रैप के परिचय का पालन कर सकते हैं और सीधे संकलित फ़ाइलों को डाउनलोड कर सकते हैं। जैसा कि डाउनलोड साइट पर उल्लेख किया गया है, इसमें jQuery शामिल नहीं है , इसलिए हमें इसे अलग से भी डाउनलोड करना होगा; यह शामिल करता है Popper.js हालांकि हम उपयोग करने के लिए चुनते हैं bootstrap.bundleफ़ाइल बाद में-जो हम क्या करेंगे। JQuery के लिए, हम केवल डाउनलोड साइट से एक "संपीड़ित, उत्पादन" फ़ाइल प्राप्त कर सकते हैं (लिंक पर राइट-क्लिक करें और मेनू से "लिंक के रूप में सहेजें ..." का चयन करें)।

यह हमें कुछ फ़ाइलों के साथ छोड़ देता है जो केवल wwwrootफ़ोल्डर में निकालेंगे और कॉपी करेंगे । हम libयह स्पष्ट करने के लिए एक फ़ोल्डर भी बना सकते हैं कि ये बाहरी निर्भरताएँ हैं:

wwwroot फ़ोल्डर में हमारी स्थापित निर्भरता के साथ lib फ़ोल्डर है

हमें बस इतना ही चाहिए, इसलिए अब हमें _Layout.cshtmlउन निर्भरताओं को शामिल करने के लिए अपनी फ़ाइल को समायोजित करने की आवश्यकता है । उसके लिए, हम निम्नलिखित ब्लॉक को इसमें जोड़ते हैं <head>:

<environment include="Development">
    <link rel="stylesheet" href="~/lib/css/bootstrap.css" />
</environment>
<environment exclude="Development">
    <link rel="stylesheet" href="~/lib/css/bootstrap.min.css" />
</environment>

और निम्नलिखित ब्लॉक के अंत में <body>:

<environment include="Development">
    <script src="~/lib/js/jquery-3.3.1.js"></script>
    <script src="~/lib/js/bootstrap.bundle.js"></script>
</environment>
<environment exclude="Development">
    <script src="~/lib/js/jquery-3.3.1.min.js"></script>
    <script src="~/lib/js/bootstrap.bundle.min.js"></script>
</environment>

आप केवल छोटे संस्करणों को शामिल कर सकते हैं और <environment>टैग सहायकों को इसे थोड़ा सरल बनाने के लिए छोड़ सकते हैं । लेकिन आपको शुरू करने के लिए बस इतना ही करना होगा।

एनपीएम से निर्भरता

अधिक आधुनिक तरीका, भले ही आप अपनी निर्भरता को अपडेट रखना चाहते हों, एनपीएम पैकेज रिपॉजिटरी से निर्भरता प्राप्त करना होगा। आप इसके लिए एनपीएम या यार्न का उपयोग कर सकते हैं; मेरे उदाहरण में, मैं NPM का उपयोग करूँगा।

शुरू करने के लिए, हमें package.jsonअपनी परियोजना के लिए एक फ़ाइल बनाने की आवश्यकता है , इसलिए हम अपनी निर्भरता निर्दिष्ट कर सकते हैं। ऐसा करने के लिए, हम बस "नया आइटम जोड़ें" संवाद से करते हैं:

नई आइटम जोड़ें: npm कॉन्फ़िगरेशन फ़ाइल

एक बार जब हमारे पास यह हो जाता है, तो हमें अपनी निर्भरता को शामिल करने के लिए इसे संपादित करना होगा। यह कुछ इस तरह दिखना चाहिए:

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "bootstrap": "4.0.0",
    "jquery": "3.3.1",
    "popper.js": "1.12.9"
  }
}

बचत करके, विजुअल स्टूडियो पहले से ही हमारे लिए निर्भरता स्थापित करने के लिए एनपीएम चलाएगा। उन्हें node_modulesफ़ोल्डर में स्थापित किया जाएगा । तो क्या करना बाकी है, वहां से फाइलों को हमारे wwwrootफोल्डर में लाना है । ऐसा करने के लिए कुछ विकल्प हैं:

bundleconfig.json बंडलिंग और मिनिफिकेशन के लिए

हम bundleconfig.jsonबंडलिंग और मिनिफिकेशन के लिए विभिन्न तरीकों में से एक का उपयोग कर सकते हैं , जैसा कि प्रलेखन में बताया गया है । एक बहुत ही आसान तरीका है कि आप आसानी से BuildBundlerMinifier NuGet पैकेज का उपयोग करें, जो स्वचालित रूप से इसके लिए एक बिल्ड कार्य सेट करता है।

उस पैकेज को स्थापित करने के बाद, हमें bundleconfig.jsonनिम्नलिखित सामग्रियों के साथ परियोजना के मूल में बनाने की आवश्यकता है :

[
  {
    "outputFileName": "wwwroot/vendor.min.css",
    "inputFiles": [
      "node_modules/bootstrap/dist/css/bootstrap.min.css"
    ],
    "minify": { "enabled": false }
  },
  {
    "outputFileName": "wwwroot/vendor.min.js",
    "inputFiles": [
      "node_modules/jquery/dist/jquery.min.js",
      "node_modules/popper.js/dist/umd/popper.min.js",
      "node_modules/bootstrap/dist/js/bootstrap.min.js"
    ],
    "minify": { "enabled": false }
  }
]

यह मूल रूप से कॉन्फ़िगर करता है कि किस फाइल को किस में संयोजित करना है। और जब हम निर्माण करते हैं, तो हम देख सकते हैं कि vendor.min.cssऔर vendor.js.cssसही ढंग से बनाए गए हैं। इसलिए हमें केवल _Layouts.htmlउन फ़ाइलों को शामिल करने के लिए फिर से समायोजित करने की आवश्यकता है :

<!-- inside <head> -->
<link rel="stylesheet" href="~/vendor.min.css" />

<!-- at the end of <body> -->
<script src="~/vendor.min.js"></script>

गुल की तरह एक कार्य प्रबंधक का उपयोग करना

अगर हम क्लाइंट-साइड डेवलपमेंट में थोड़ा और आगे बढ़ना चाहते हैं, तो हम उन टूल्स का इस्तेमाल करना भी शुरू कर सकते हैं, जिन्हें हम वहाँ इस्तेमाल करेंगे। उदाहरण के लिए वेबपैक जो वास्तव में सब कुछ के लिए एक बहुत ही सामान्य रूप से निर्मित उपकरण है। लेकिन हम भी एक सरल कार्य प्रबंधक के साथ शुरू कर सकते हैं जैसे कि गुल्प और कुछ आवश्यक कदमों को स्वयं करना।

उसके लिए, हम gulpfile.jsअपने प्रोजेक्ट रूट में निम्नलिखित सामग्री के साथ जोड़ते हैं:

const gulp = require('gulp');
const concat = require('gulp-concat');

const vendorStyles = [
    "node_modules/bootstrap/dist/css/bootstrap.min.css"
];
const vendorScripts = [
    "node_modules/jquery/dist/jquery.min.js",
    "node_modules/popper.js/dist/umd/popper.min.js",
    "node_modules/bootstrap/dist/js/bootstrap.min.js",
];

gulp.task('build-vendor-css', () => {
    return gulp.src(vendorStyles)
        .pipe(concat('vendor.min.css'))
        .pipe(gulp.dest('wwwroot'));
});

gulp.task('build-vendor-js', () => {
    return gulp.src(vendorScripts)
        .pipe(concat('vendor.min.js'))
        .pipe(gulp.dest('wwwroot'));
});

gulp.task('build-vendor', gulp.parallel('build-vendor-css', 'build-vendor-js'));

gulp.task('default', gulp.series('build-vendor'));

अब, हम package.jsonपर निर्भरता है gulpऔर gulp-concat:

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "bootstrap": "4.0.0",
    "gulp": "^4.0.2",
    "gulp-concat": "^2.6.1",
    "jquery": "3.3.1",
    "popper.js": "1.12.9"
  }
}

अंत में, हम .csprojनिम्नलिखित कार्य को जोड़ने के लिए संपादित करते हैं जो यह सुनिश्चित करता है कि जब हम प्रोजेक्ट का निर्माण करते हैं तो हमारा गुलप कार्य चलता है:

<Target Name="RunGulp" BeforeTargets="Build">
  <Exec Command="node_modules\.bin\gulp.cmd" />
</Target>

अब, जब हम निर्माण करते हैं, तो defaultगुलप कार्य चलता है, जो build-vendorकार्यों को चलाता है, जो तब हमारे निर्माण करता है vendor.min.cssऔर vendor.min.jsजैसे हमने पहले किया था। तो _Layout.cshtmlऊपर की तरह हमारे समायोजन के बाद , हम jQuery और बूटस्ट्रैप का उपयोग कर सकते हैं।

जबकि गुलप का प्रारंभिक सेटअप bundleconfig.jsonऊपर के मुकाबले थोड़ा अधिक जटिल है , हम अब नोड-दुनिया में प्रवेश कर चुके हैं और वहां अन्य सभी शांत उपकरणों का उपयोग करना शुरू कर सकते हैं। तो यह इसके साथ शुरू करने के लिए लायक हो सकता है।

निष्कर्ष

जबकि यह अचानक केवल बोवर का उपयोग करने की तुलना में बहुत अधिक जटिल हो गया, हम उन नए विकल्पों के साथ बहुत अधिक नियंत्रण प्राप्त करते हैं। उदाहरण के लिए, अब हम यह तय कर सकते हैं कि wwwrootफ़ोल्डर के भीतर वास्तव में कौन सी फाइलें शामिल हैं और वे वास्तव में कैसी दिखती हैं। और हम इसका उपयोग नोड के साथ क्लाइंट-साइड डेवलपमेंट की दुनिया में पहली चाल बनाने के लिए कर सकते हैं जो कम से कम सीखने की अवस्था के साथ थोड़ी मदद करनी चाहिए ।


1
एनपीएम विधि का उपयोग करते समय, मुझे "अनकनेक्टेड सिंटैक्स्योर: अनपेक्षित टोकन निर्यात" जैसी त्रुटियां वापस मिल रही थीं। इसे ठीक करने के लिए मैंने popper.js umd फ़ाइल "नोड_मॉड्यूल्स / popper.js / dist / umd / popper.min.js" पर स्विच किया। अन्यथा एक सबसे अच्छा जवाब जो मैंने कभी स्टैक पर देखा है, धन्यवाद।
जेम्स ब्लेक

2
@user ऐसा लगता है जैसे आप नोड के बहुत पुराने संस्करण का उपयोग कर रहे हैं। आप संस्करण को चलाकर देख सकते हैं node -v, और यहाँ
प्रहार करें

62
जबरदस्त हंसी। मुझे हंसना है या मुझे रोना पड़ेगा। विज़ुअल स्टूडियो के टूलींग समर्थन का उपयोग करके सत्रह वर्ष। नेट विकास, और यह इस पर आ गया है? व्यक्तिगत रूप से, मैं यह देखने में विफल हूं कि यह आगे की प्रगति कैसे है। अगर किसी वेब प्रोजेक्ट में बूटस्ट्रैप स्टाइलिंग को जोड़ने के लिए यह इतना काम करता है तो कुछ बहुत गलत हो गया है।
कैमैनक

11
@camainc यदि कुछ भी है, तो उसे जावास्क्रिप्ट पारिस्थितिकी तंत्र के विकास पर दोष दें। यह वास्तव में .NET या Visual Studio से संबंधित नहीं है। सरल समाधान अभी भी फ़ाइलों को मैन्युअल रूप से डाउनलोड करना है और फिर उन्हें अपनी वेब रूट में जोड़ना है। बस, इसी तरह से सारे साल पहले भी काम किया। - और इसके लायक क्या है, इस प्रक्रिया को सरल (और अद्यतन करने योग्य) बनाने के लिए Microsoft नए वीएस टूलिंग पर काम कर रहा है।
प्रहार

3
@ ozzy432836, मुझे पता है कि यह एक बूटस्ट्रैप समस्या नहीं है, और मैंने कभी नहीं कहा कि यह था। यह अगले नए ढांचे का पीछा करते हुए सभी के साथ एक सामान्य विकास का मुद्दा है। मैंने अपने करियर में बहुत सारे बदलाव देखे हैं, लेकिन पिछले कुछ सालों में जावास्क्रिप्ट के आसपास क्या हुआ है, ऐसा कुछ नहीं है। यह विकास समुदाय को एक के बाद एक नए ढांचे पर मंथन करते हुए बिल्कुल पागल हो गया है। जैसा कि जेएस के लिए आगे का रास्ता है, जूरी अभी भी उस एक पर है, खासकर डब्ल्यूएएसएम और क्षितिज पर ब्लेज़र जैसी परियोजनाओं के साथ।
कैमैनक

56

इसे देखते हुए, ऐसा लगता है कि लिबमैन दृष्टिकोण बूटस्ट्रैप को जोड़ने के साथ मेरी जरूरतों के लिए सबसे अच्छा काम करता है। मुझे यह पसंद है क्योंकि यह अब विजुअल स्टूडियो 2017 (15.8 या उसके बाद) में बनाया गया है और इसके अपने संवाद बॉक्स हैं।

अद्यतन 6/11/2020: बूटस्ट्रैप 4.1.3 को अब वीएस-2019.5 के साथ डिफ़ॉल्ट रूप से जोड़ा गया है (ध्यान देने के लिए हेराल्ड एस हेंसन के लिए धन्यवाद।)

डिफ़ॉल्ट विधि VS प्रोजेक्ट्स में बोवर का उपयोग करता है, लेकिन ऐसा लगता है कि यह बाहर जाने के रास्ते पर है। Microsofts bower पृष्ठ के हेडर में वे लिखते हैं: बोवर को केवल बनाए रखा जाता है। LibManager का उपयोग कर

कुछ लिंक के बाद विज़ुअल स्टूडियो में ASP.NET Core के साथ LibMan का उपयोग करने के लिए नेतृत्व करें जहां यह दिखाता है कि बिल्ट-इन डायलॉग का उपयोग करके लिबास को कैसे जोड़ा जा सकता है:

समाधान एक्सप्लोरर में, प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें जिसमें फाइलें जोड़ी जानी चाहिए। Add> Client-Side Library चुनें। क्लाइंट-साइड लाइब्रेरी जोड़ें संवाद प्रकट होता है: [स्रोत: स्कॉट एडि 2018 ]

यहां छवि विवरण दर्ज करें

फिर बूटस्ट्रैप के लिए बस (1) अनपैक का चयन करें, (2) टाइप करें "बूटस्ट्रैप @ .." (3) इंस्टॉल करें। इसके बाद, आप बस _Layout.cshtml में सभी शामिलों को सत्यापित करना चाहेंगे या अन्य स्थान सही हैं। उन्हें href = "~ / lib / bootstrap / dist / js / bootstrap ..." ) जैसा कुछ होना चाहिए


1
मेरे पास वीएस 4.7.02558 (कम्युनिटी एडिशन) है और यह मेरे लिए सबसे आसान विकल्प था। मैंने एमएस 70-486 (एमवीसी) परीक्षा के लिए अध्ययन करने के लिए बनाई गई अभ्यास परियोजनाओं में इसका इस्तेमाल किया, इसलिए मैं इस बात का जवाब नहीं दे सकता कि यह उन परियोजनाओं के लिए कितना प्रभावी है जो उत्पादन के लिए नेतृत्व कर रहे हैं।
एड गिब्स

2
मेरे लिए, यह भी MS STANDARD TOOL के साथ सामान को स्थापित करने का सबसे आसान तरीका था। आपकी पोस्टिंग में संकेत के साथ - प्रदाता को अनपैक करने के लिए बदलें, बूटस्ट्रैप @ 4 में टाइप करें। मैं स्थापित करने में सक्षम था। Libman वास्तव में सहज नहीं है (मेरे मामले में, मैं भी, इससे पहले कि संकुल दिखाया गया था दर्ज करने के लिए (बिंदु) 4 के बाद (मैंने सोचा, Libman मेरी वातावरण में काम नहीं कर रहा
FredyWenger

2
बस एक अनुस्मारक: यदि आप सीडीएनजेएस पर बूटस्ट्रैप की तलाश कर रहे हैं, तो ध्यान रखें कि नाम ट्विटर-बूटस्ट्रैप है क्योंकि इसे मूल रूप से कहा जाता था।
डी। रोराडो

1
विजुअल स्टूडियो 2019 में (11 जून 2020 तक नवीनतम) - लिबमैन फ़ाइल बनाई जाती है, लेकिन मुझे लिबमैन पॉपअप विंडो दिखाई नहीं देती है।
हेराल्ड एस। हैंसेन

1
मैंने कई परियोजनाओं पर LibMan का परीक्षण किया है और यह वास्तव में जाने का रास्ता है। बहुत बुरा जीयूआई काम नहीं करता है, लेकिन कुछ प्रयासों के बाद इसका उपयोग करना आसान है।
हेराल्ड एस। हेंससेन

18

लीबमैन की कोशिश करें , यह बोवर जितना सरल है और आप wwwroot / lib / डाउनलोड फ़ोल्डर के रूप में निर्दिष्ट कर सकते हैं।


1
VS2017 की रिलीज़ में अभी तक नहीं: अद्यतन: 24-मई-2018 - ऐसा लगता है कि लिबमैन ने इसे 15.7 की अंतिम रिलीज में नहीं बनाया। यह 15.8.x के पूर्वावलोकन में है
kristianp

1
ऐसा लगता है कि अब अंतिम 15.8 रिलीज के साथ बाहर है।
कर्क लार्किन

यह वीएस २०१ 15 वी १५. and में अब उपलब्ध है और स्वीकृत उत्तर की तुलना में बहुत सरल दृष्टिकोण है
जेम्सवर्ल्ड

10

मेरे लिए क्या चाल है:

1) wwwroot> Add> Client Side Library पर राइट क्लिक करें

2) सर्च बॉक्स पर टाइप "बूटस्ट्रैप"

3) "विशिष्ट फ़ाइलें चुनें" चुनें

4) नीचे स्क्रॉल करें और एक फ़ोल्डर चुनें। मेरे मामले में मैंने "ट्विटर-बूटस्ट्रैप" चुना

5) "सीएसएस" और "जेएस" जांचें

6) "इंस्टॉल" पर क्लिक करें।

कुछ सेकंड बाद मैं उनमें से सभी wwwroot फ़ोल्डर है। सभी क्लाइंट साइड पैकेजों के लिए वही करें जो आप जोड़ना चाहते हैं।


6

लिबमैन अब Microsoft द्वारा पसंद किया जाने वाला उपकरण है। इसे Visual Studio 2017 (15.8) में एकीकृत किया गया है।

यह आलेख वर्णन करता है कि इसका उपयोग कैसे करें और यहां तक ​​कि बिल्ड प्रक्रिया द्वारा निष्पादित पुनर्स्थापना कैसे सेट करें।

बूटस्ट्रैप का प्रलेखन आपको बताता है कि आपको अपने प्रोजेक्ट में किन फ़ाइलों की आवश्यकता है।

निम्नलिखित उदाहरण libman.json के लिए एक विन्यास के रूप में काम करना चाहिए।

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
  {
    "library": "twitter-bootstrap@4.2.1",
    "destination": "wwwroot/lib/bootstrap",
    "files": [
    "js/bootstrap.bundle.js",
    "css/bootstrap.min.css"
    ]
  },
  {
    "library": "jquery@3.3.1",
    "destination": "wwwroot/lib/jquery",
    "files": [
      "jquery.min.js"
    ]
  }
]

}


धन्यवाद, मैं एक प्रो ASP.NET Core MVC 2 पुस्तक में साथ चल रहा था जिसने मुझे बोवर का उपयोग करने के लिए कहा था जो अब अप्रचलित है। मैंने यह महसूस करने से पहले कि आप अपनी परियोजना पर राइट-क्लिक कर सकते हैं और ऐड -> क्लाइंट-साइड लाइब्रेरी का चयन कर सकते हैं। और वह कामवासना का उपयोग करता है। यह सब बनाया गया है।
TxRegex

4

हम asp.net कोर में बूटस्ट्रैप 4 का उपयोग करते हैं, लेकिन "पैकेज इंस्टॉलर" एक्सटेंशन का उपयोग करके "npm" से पुस्तकालयों को संदर्भित करते हैं और इसे जावास्क्रिप्ट / सीएसएस पुस्तकालयों के लिए Nuget से बेहतर पाया।

तब हम वितरण के लिए प्रासंगिक फ़ाइलों (npm नोड_मॉड्यूल्स फ़ोल्डर, जो परियोजना के बाहर बैठे हैं) को wwwroot में उपयोग करने के लिए "बुंडलर एंड मिनिफायर" एक्सटेंशन का उपयोग करते हैं जैसा कि हम विकास / तैनाती के लिए पसंद करते हैं।


4

दुर्भाग्यवश, आप एक NET ऑक्टा प्रोजेक्ट पर बूटस्ट्रैप (या अधिकांश अन्य जावास्क्रिप्ट / सीएसएस फ्रेमवर्क) स्थापित करने के लिए NuGet का उपयोग करने के लिए एक कठिन समय लेने जा रहे हैं। यदि आप NuGet स्थापित को देखते हैं तो यह बताता है कि यह असंगत है:

यहां छवि विवरण दर्ज करें

यदि आपको पता होना चाहिए कि स्थानीय पैकेज निर्भरताएँ कहाँ हैं, तो वे अब आपके स्थानीय प्रोफ़ाइल निर्देशिका में हैं। यानी %userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts

हालाँकि, मैं सुझाव देता हूं कि एनपीएम पर स्विच करें, या बोवर - जैसे सनेश्वर के जवाब में।


2

बीएस 4 अब .NET कोर 2.2 पर उपलब्ध है । सुनिश्चित करने के लिए एसडीके 2.2.105 x64 इंस्टॉलर पर। मैं इसके साथ विजुअल स्टूडियो 2017 चला रहा हूं। अब तक नई वेब एप्लिकेशन परियोजनाओं के लिए बहुत अच्छा है।


2

सिर्फ एक CDN का उपयोग क्यों न करें? जब तक आपको बीएस कोड को संपादित करने की आवश्यकता नहीं है, तब तक आपको सीडीएन में कोड को संदर्भित करना होगा।

बीएस 4 सीडीएन यहां देखें:

https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp

पृष्ठ के निचले भाग में।


1
CDN का उपयोग एक रनटाइम निर्भरता जोड़ता है। तो अगर सीडीएन नीचे जाता है, तो आपकी साइट है। यह एक सुरक्षा मुद्दा है क्योंकि जो कोई भी सीडीएन को नियंत्रित करता है वह लोकप्रिय फ़ाइलों को बदल सकता है और आपकी साइट में स्क्रिप्ट को इंजेक्ट कर सकता है। यह एक गोपनीयता समस्या भी है क्योंकि उपयोगकर्ता का ब्राउज़र आपके बजाय एक 3 डी सर्वर से फाइलों का अनुरोध करता है।
TxRegex

3
@TxRegex किसी स्तर पर वास्तव में यह सिफारिश की गई थी कि संदर्भ वेब ऐप के सर्वर के बजाय सीडीएन के लिए हो; क्योंकि एक उपयोगकर्ता के ब्राउज़र में पहले से ही अन्य साइटों को भ्रमित करते हुए बूटस्ट्रैप जैसे लोकप्रिय पुस्तकालय को कैश करने की संभावना थी। लेकिन जो भी हो ...
joedotnot

0

Nmp कॉन्फ़िगरेशन फ़ाइल (इसे अपने वेब प्रोजेक्ट में जोड़ें) का उपयोग करें फिर उसी तरह से आवश्यक पैकेज जोड़ें जैसे हमने bower.json और सेव का उपयोग किया था। विजुअल स्टूडियो इसे डाउनलोड और इंस्टॉल करेगा। आपको अपनी परियोजना के nmp नोड के तहत पैकेज मिलेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.