วิธีใช้ Bootstrap 4 ใน ASP.NET Core


112

ฉันต้องการอัปเดต Bootstrap ใน ASP.NET Core ด้วย NuGet ฉันใช้สิ่งนี้:

Install-Package bootstrap -Version 4.0.0

มันเพิ่มการอ้างอิง แต่ฉันจะเพิ่มในโครงการของฉันตอนนี้ได้อย่างไร เส้นทางสำหรับการพึ่งพา NuGet ในเครื่องคืออะไร?

ติดตั้ง NuGet dependencies


3
BS4 ไม่ควรรองรับ Bower (ที่มา: getbootstrap.com/docs/4.0/migration/#breaking )
Klooven

แทนที่ bootstrap@4.0.0-beta.3 ด้วย bootstrap@4.0.0: stackoverflow.com/questions/47985337/…
mrapi

1
ปัจจุบันนี่ควรเป็นคำตอบที่ยอมรับได้ง่ายที่สุดโดยใช้ Libman: stackoverflow.com/a/53012140/578552
rfcdejong

เวอร์ชัน 4.4.1 เข้ากันได้แล้วโดย NUGET
Diego Venâncio

คำตอบ:


223

ดังที่คนอื่น ๆ กล่าวไปแล้วตัวจัดการแพ็คเกจBowerซึ่งโดยปกติจะใช้สำหรับการอ้างอิงเช่นนี้ในแอปพลิเคชันที่ไม่ต้องพึ่งพาการเขียนสคริปต์ฝั่งไคลเอ็นต์จำนวนมากกำลังจะออกและแนะนำให้ย้ายไปยังโซลูชันอื่น ๆ :

..psst! ในขณะที่ Bower ได้รับการบำรุงรักษาเราขอแนะนำให้ใช้yarnและwebpackสำหรับโครงการ front-end ใหม่!

ดังนั้นแม้ว่าคุณยังสามารถใช้มันตอนนี้เงินทุนยังได้ประกาศการวางสนับสนุนสำหรับมัน ด้วยเหตุนี้เทมเพลต ASP.NET Core ในตัวจึงได้รับการแก้ไขอย่างช้าๆเพื่อย้ายออกไป

น่าเสียดายที่ไม่มีเส้นทางข้างหน้าที่ชัดเจน ส่วนใหญ่เกิดจากการที่เว็บแอปพลิเคชันกำลังเคลื่อนตัวไปยังฝั่งไคลเอ็นต์อย่างต่อเนื่องโดยต้องใช้ระบบสร้างฝั่งไคลเอ็นต์ที่ซับซ้อนและการอ้างอิงจำนวนมาก ดังนั้นหากคุณกำลังสร้างอะไรแบบนั้นคุณอาจรู้วิธีแก้ปัญหานี้แล้วและคุณสามารถขยายกระบวนการสร้างที่มีอยู่เพื่อรวม Bootstrap และ jQuery ไว้ที่นั่นได้

แต่ยังมีแอปพลิเคชันเว็บจำนวนมากที่ไม่ได้ใช้งานหนักในฝั่งไคลเอ็นต์ซึ่งแอปพลิเคชันยังคงทำงานบนเซิร์ฟเวอร์เป็นหลักและเซิร์ฟเวอร์ให้บริการมุมมองแบบคงที่เป็นผล ก่อนหน้านี้ Bower เติมเต็มสิ่งนี้ด้วยการทำให้ง่ายเพียงแค่เผยแพร่การอ้างอิงฝั่งไคลเอ็นต์โดยไม่ต้องมีกระบวนการมากนัก

ในโลก. NET เรายังมี NuGet และ ASP.NET เวอร์ชันก่อนหน้าเราสามารถใช้ NuGet ได้เช่นกันเพื่อเพิ่มการอ้างอิงให้กับการอ้างอิงฝั่งไคลเอ็นต์เนื่องจาก NuGet จะวางเนื้อหาลงในโครงการของเราอย่างถูกต้อง น่าเสียดายที่ด้วย.csprojรูปแบบใหม่และ NuGet ใหม่แพ็คเกจที่ติดตั้งจะอยู่นอกโครงการของเราดังนั้นเราจึงไม่สามารถอ้างอิงได้

สิ่งนี้ทำให้เรามีตัวเลือกสองสามอย่างในการเพิ่มการอ้างอิงของเรา:

ติดตั้งครั้งเดียว

นี่คือสิ่งที่เทมเพลต ASP.NET Core ซึ่งไม่ใช่แอปพลิเคชันหน้าเดียวกำลังทำอยู่ เมื่อคุณใช้สิ่งเหล่านี้เพื่อสร้างแอปพลิเคชันใหม่wwwrootโฟลเดอร์จะมีโฟลเดอร์libที่มีการอ้างอิง:

โฟลเดอร์ wwwroot มีโฟลเดอร์ lib ที่มีการอ้างอิงแบบคงที่

หากคุณดูไฟล์อย่างใกล้ชิดในปัจจุบันคุณจะเห็นได้ว่าไฟล์เหล่านี้ถูกวางไว้ที่เดิมโดย Bower เพื่อสร้างเทมเพลต แต่มีแนวโน้มที่จะเปลี่ยนแปลงในไม่ช้า แนวคิดพื้นฐานคือไฟล์จะถูกคัดลอกไปยังโฟลเดอร์หนึ่งครั้งเพื่อwwwrootให้คุณสามารถพึ่งพาได้

ในการทำเช่นนี้เราสามารถทำตามคำแนะนำของ Bootstrap และดาวน์โหลดไฟล์ที่คอมไพล์ได้โดยตรง ตามที่ระบุไว้ในเว็บไซต์ดาวน์โหลดนี้ไม่รวม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

วิธีที่ทันสมัยกว่านี้หากคุณต้องการให้การอ้างอิงของคุณอัปเดตคือการได้รับการอ้างอิงจากที่เก็บแพ็กเกจ NPM คุณสามารถใช้ NPM หรือ Yarn สำหรับสิ่งนี้ ในตัวอย่างของฉันฉันจะใช้ 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"
  }
}

โดยการบันทึก Visual Studio จะรัน NPM เพื่อติดตั้งการอ้างอิงให้เราแล้ว จะถูกติดตั้งลงในnode_modulesโฟลเดอร์ ดังนั้นสิ่งที่ต้องทำก็คือรับไฟล์จากที่นั่นไปยังwwwrootโฟลเดอร์ของเรา มีตัวเลือกให้ทำดังนี้

bundleconfig.json สำหรับการรวมกลุ่มและการลดขนาด

เราสามารถใช้หนึ่งในวิธีการต่างๆในการกินbundleconfig.jsonสำหรับ bundling และ minification ตามที่อธิบายไว้ในเอกสาร วิธีที่ง่ายมากเพียงแค่ใช้แพ็คเกจ 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>

ใช้ตัวจัดการงานเช่น Gulp

หากเราต้องการก้าวไปสู่การพัฒนาฝั่งไคลเอ็นต์อีกเล็กน้อยเราสามารถเริ่มใช้เครื่องมือที่เราจะใช้ที่นั่นได้ ตัวอย่างเช่นWebpackซึ่งเป็นเครื่องมือสร้างที่ใช้กันทั่วไปสำหรับทุกอย่างจริงๆ แต่เรายังสามารถเริ่มต้นด้วยตัวจัดการงานที่ง่ายกว่าเช่นGulpและทำตามขั้นตอนที่จำเป็นไม่กี่ขั้นตอนด้วยตัวเอง

ด้วยเหตุนี้เราจึงเพิ่ม a 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เพื่อเพิ่มงานต่อไปนี้ซึ่งทำให้แน่ใจว่างาน Gulp ของเราทำงานเมื่อเราสร้างโครงการ:

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

ตอนนี้เมื่อเราสร้างdefaultงาน Gulp จะทำงานซึ่งรันbuild-vendorภารกิจซึ่งจะสร้างของเราvendor.min.cssและvendor.min.jsเหมือนกับที่เราเคยทำมาก่อน ดังนั้นหลังจากปรับเปลี่ยน_Layout.cshtmlเหมือนด้านบนแล้วเราสามารถใช้ jQuery และ Bootstrap ได้

แม้ว่าการตั้งค่าเริ่มต้นของ Gulp จะซับซ้อนกว่าที่กล่าวมาbundleconfig.jsonข้างต้นเล็กน้อยแต่ตอนนี้เราได้เข้าสู่ Node-world แล้วและสามารถเริ่มใช้ประโยชน์จากเครื่องมือเจ๋ง ๆ ทั้งหมดที่นั่นได้ ดังนั้นจึงควรเริ่มต้นด้วยสิ่งนี้

สรุป

แม้ว่าสิ่งนี้จะซับซ้อนกว่าการใช้ Bower แต่เราก็สามารถควบคุมตัวเลือกใหม่ ๆ เหล่านี้ได้มากมาย ตัวอย่างเช่นตอนนี้เราสามารถตัดสินใจได้แล้วว่าไฟล์ใดบ้างที่รวมอยู่ในwwwrootโฟลเดอร์และลักษณะของไฟล์เหล่านั้น และเรายังสามารถใช้เพื่อให้ย้ายครั้งแรกในโลกพัฒนาฝั่งไคลเอ็นต์กับโหนดซึ่งอย่างน้อยจะช่วยให้นิดกับเส้นโค้งการเรียนรู้


1
เมื่อใช้วิธี npm ฉันได้รับข้อผิดพลาดกลับมาเช่น "Uncaught SyntaxError: Uncaught token export" ในการแก้ไขปัญหานี้ฉันเปลี่ยนไปใช้ไฟล์ umd popper.js "node_modules / popper.js / dist / umd / popper.min.js" มิฉะนั้นหนึ่งในคำตอบที่ดีที่สุดที่ฉันเคยเห็นในกองซ้อนขอขอบคุณ
James Blake

2
@user ฟังดูเหมือนว่าคุณกำลังใช้ Node เวอร์ชันเก่ามาก คุณสามารถดูเวอร์ชันโดยการเรียกใช้node -vและรับเวอร์ชันปัจจุบันได้ที่ nodejs.org
โผล่

62
ฮ่า ๆ. ฉันต้องหัวเราะหรือฉันจะร้องไห้ สิบเจ็ดปีของการพัฒนา. Net โดยใช้การสนับสนุนเครื่องมือของ Visual Studio และมาถึงสิ่งนี้แล้ว? โดยส่วนตัวแล้วฉันไม่เห็นว่าความคืบหน้านี้เป็นอย่างไร หากต้องใช้เวลามากในการเพิ่มสไตล์ Bootstrap ให้กับโปรเจ็กต์เว็บแสดงว่ามีบางอย่างผิดปกติอย่างมาก
camainc

11
@camainc ถ้ามีอะไรก็ตำหนิเรื่องการพัฒนาระบบนิเวศของ JavaScript สิ่งนี้ไม่เกี่ยวข้องกับ. NET หรือ Visual Studio เลย วิธีแก้ปัญหาง่ายๆคือดาวน์โหลดไฟล์ด้วยตนเองจากนั้นเพิ่มลงในรูทเว็บของคุณ นั่นเป็นเพียงวิธีการทำงานตลอดหลายปีก่อนเช่นกัน - และสำหรับสิ่งที่คุ้มค่า Microsoft กำลังพัฒนาเครื่องมือ VS ใหม่เพื่อทำให้กระบวนการนี้ง่ายขึ้น (และสามารถอัปเดตได้)
โผล่

3
@ ozzy432836 ฉันรู้ว่ามันไม่ใช่ปัญหา bootstrap และฉันไม่เคยบอกว่ามันเป็น มันเป็นปัญหาการพัฒนาทั่วไปที่ทุกคนดูเหมือนจะไล่ตามกรอบงานใหม่ถัดไป ฉันได้เห็นการเปลี่ยนแปลงมากมายในอาชีพการงานของฉัน แต่ไม่มีอะไรที่เหมือนกับสิ่งที่เกิดขึ้นในสองสามปีที่ผ่านมาโดยรอบ Javascript เป็นเรื่องที่น่าเบื่ออย่างยิ่งที่ได้เฝ้าดูชุมชนการพัฒนาที่กำลังเปลี่ยนกรอบการทำงานใหม่ทีละเรื่อง สำหรับ JS เป็นหนทางไปข้างหน้าหรือไม่คณะลูกขุนยังคงให้ความสำคัญกับเรื่องนั้นโดยเฉพาะกับ WASM และโครงการต่างๆเช่น Blazor บนขอบฟ้า
camainc

56

เมื่อพิจารณาถึงสิ่งนี้ดูเหมือนว่าแนวทาง LibMan จะทำงานได้ดีที่สุดสำหรับความต้องการของฉันด้วยการเพิ่ม Bootstrap ฉันชอบมันเพราะตอนนี้สร้างไว้ใน Visual Studio 2017 (15.8 หรือใหม่กว่า) และมีกล่องโต้ตอบของตัวเอง

อัปเดต 6/11/2020:ตอนนี้ bootstrap 4.1.3 ถูกเพิ่มโดยค่าเริ่มต้นด้วย VS-2019.5 (ขอบคุณ Harald S. Hanssen ที่สังเกตเห็น)

วิธีเริ่มต้น VS เพิ่มในโปรเจ็กต์ใช้ Bower แต่ดูเหมือนว่ามันกำลังจะหมดไป ในส่วนหัวของหน้าMicrosofts bowerพวกเขาเขียน: Bower ได้รับการบำรุงรักษาเท่านั้นแนะนำให้ใช้ LibManager

การติดตามลิงก์สองลิงก์นำไปสู่การใช้ LibMan กับ ASP.NET Core ใน Visual Studioซึ่งจะแสดงวิธีการเพิ่ม libs โดยใช้กล่องโต้ตอบในตัว:

ใน Solution Explorer คลิกขวาที่โฟลเดอร์โครงการที่จะเพิ่มไฟล์ เลือกเพิ่ม> ไลบรารีฝั่งไคลเอ็นต์ กล่องโต้ตอบ Add Client-Side Library ปรากฏขึ้น: [ที่มา: Scott Addie 2018 ]

ใส่คำอธิบายภาพที่นี่

จากนั้นสำหรับ bootstrap เพียง (1) เลือก unkg (2) พิมพ์ใน "bootstrap @ .. " (3) Install หลังจากนี้คุณเพียงแค่ต้องการตรวจสอบว่าการรวมทั้งหมดใน _Layout.cshtml หรือที่อื่น ๆ ถูกต้อง ควรเป็นhref = "~ / lib / bootstrap / dist / js / bootstrap ... " )


1
ฉันมี VS 4.7.02558 (Community Edition) และนี่เป็นตัวเลือกที่ง่ายที่สุดสำหรับฉัน ฉันใช้มันในโครงการฝึกปฏิบัติที่สร้างขึ้นเพื่อศึกษาสำหรับการสอบ MS 70-486 (MVC) ดังนั้นฉันจึงไม่สามารถตอบได้ว่าสิ่งนี้มีประสิทธิภาพเพียงใดสำหรับโครงการที่มุ่งหน้าสู่การผลิต
Ed Gibbs

2
สำหรับฉันนี่เป็นวิธีที่ง่ายที่สุดในการติดตั้งสิ่งต่างๆด้วย MS STANDARD TOOL ด้วยคำแนะนำในการโพสต์ของคุณ - เปลี่ยนผู้ให้บริการเป็น unkg พิมพ์ bootstrap @ 4 ฉันสามารถติดตั้งได้ Libman ไม่ได้ใช้งานง่าย (ในกรณีของฉันฉันต้องเข้าสู่. (จุด) หลังจาก 4 ก่อนที่จะมีการแสดงแพ็คเกจ (ฉันคิดว่า libman ไม่ทำงานในสภาพแวดล้อมของฉัน)
FredyWenger

2
เพียงเตือน: หากคุณกำลังมองหา Bootstrap บน CdnJS โปรดทราบว่าชื่อคือ twitter-bootstrap ตามที่เรียกกันในตอนแรก
D.Rosado

1
ใน Visual Studio 2019 (ล่าสุดภายในวันที่ 11 มิถุนายน 2020) - ไฟล์ libman ถูกสร้างขึ้น แต่ฉันไม่เห็นหน้าต่างป๊อปอัป libman
Harald S. Hanssen

1
ฉันได้ทดสอบ LibMan ในหลายโครงการและเป็นวิธีที่จะไปจริงๆ น่าเสียดายที่ GUI ใช้งานไม่ได้ แต่หลังจากลองสองสามครั้งก็ใช้งานได้ง่าย
Harald S. Hanssen

18

ลองLibmanมันง่ายเหมือน Bower และคุณสามารถระบุ wwwroot / lib / เป็นโฟลเดอร์ดาวน์โหลด


1
ยังไม่ได้อยู่ในรุ่น VS2017: UPDATE: 24- พฤษภาคม -2561 - ดูเหมือนว่า LibMan จะไม่ได้เป็นรุ่นสุดท้ายของ 15.7 มันอยู่ในภาพตัวอย่างสำหรับ 15.8.x
kristianp

1
ดูเหมือนว่าตอนนี้จะออกมาพร้อมกับการเปิดตัว 15.8 สุดท้าย
Kirk Larkin

มีวางจำหน่ายแล้วใน VS2017 V 15.8 และแนวทางที่ง่ายกว่าคำตอบที่ยอมรับ
Jemsworld

10

เคล็ดลับสำหรับฉันคืออะไร:

1) คลิกขวาที่ wwwroot> Add> Client Side Library

2) พิมพ์ "bootstrap" บนช่องค้นหา

3) เลือก "เลือกไฟล์เฉพาะ"

4) เลื่อนลงและเลือกโฟลเดอร์ ในกรณีของฉันฉันเลือก "twitter-bootstrap"

5) ตรวจสอบ "css" และ "js"

6) คลิก "ติดตั้ง"

ไม่กี่วินาทีต่อมาฉันมีโฟลเดอร์ wwwroot ทั้งหมด ทำเช่นเดียวกันสำหรับแพ็คเกจฝั่งไคลเอ็นต์ทั้งหมดที่คุณต้องการเพิ่ม


6

Libman ดูเหมือนจะเป็นเครื่องมือที่ Microsoft ต้องการในตอนนี้ รวมอยู่ใน Visual Studio 2017 (15.8)

บทความนี้อธิบายถึงวิธีการใช้งานและวิธีตั้งค่าการกู้คืนที่ดำเนินการโดยกระบวนการสร้าง

เอกสารของ Bootstrapจะบอกคุณว่าคุณต้องการไฟล์อะไรในโครงการของคุณ

ตัวอย่างต่อไปนี้ควรใช้เป็นคอนฟิกูเรชันสำหรับ 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"
    ]
  }
]

}


ขอบคุณฉันติดตามหนังสือ Pro ASP.NET Core MVC 2 ที่บอกให้ฉันใช้ Bower ซึ่งตอนนี้ล้าสมัยแล้ว ฉันค้นหาอยู่พักหนึ่งก่อนที่จะตระหนักว่าคุณสามารถคลิกขวาที่โครงการของคุณแล้วเลือกเพิ่ม -> ไลบรารีฝั่งไคลเอ็นต์ และที่ใช้ libman ทั้งหมดนี้อยู่ในตัว
TxRegex

4

เราใช้ bootstrap 4 ในแกน asp.net แต่อ้างอิงไลบรารีจาก "npm" โดยใช้ส่วนขยาย "Package Installer" และพบว่าสิ่งนี้ดีกว่า Nuget สำหรับไลบรารี Javascript / CSS

จากนั้นเราใช้ส่วนขยาย "Bundler & Minifier" เพื่อคัดลอกไฟล์ที่เกี่ยวข้องสำหรับการแจกจ่าย (จากโฟลเดอร์ npm node_modules ซึ่งอยู่นอกโปรเจ็กต์) ไปยัง wwwroot ตามที่เราต้องการสำหรับการพัฒนา / ปรับใช้


4

น่าเสียดายที่คุณจะมีปัญหาในการใช้ NuGet เพื่อติดตั้ง Bootstrap (หรือเฟรมเวิร์ก JavaScript / CSS อื่น ๆ ส่วนใหญ่) ในโครงการ. NET Core หากคุณดูการติดตั้ง NuGet จะบอกคุณว่าเข้ากันไม่ได้:

ใส่คำอธิบายภาพที่นี่

หากคุณต้องทราบว่าการขึ้นต่อกันของแพ็กเกจโลคัลอยู่ที่ใดขณะนี้อยู่ในไดเร็กทอรีโปรไฟล์ภายในของคุณ กล่าวคือ%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts .

อย่างไรก็ตามฉันขอแนะนำให้เปลี่ยนเป็น npm หรือ bower - เหมือนในคำตอบของ Saineshwar


2

BS4 พร้อมใช้งานบน. NET Core 2.2แล้ว บนตัวติดตั้ง SDK 2.2.105 x64 อย่างแน่นอน ฉันใช้ Visual Studio 2017 ด้วย จนถึงตอนนี้ดีมากสำหรับโครงการเว็บแอปพลิเคชันใหม่


2

ทำไมไม่ใช้ CDN? เว้นแต่คุณจะต้องการแก้ไขรหัสของ BS คุณเพียงแค่ต้องอ้างอิงรหัสใน CDN

ดู BS 4 CDN ที่นี่:

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

ที่ด้านล่างของหน้า


1
การใช้ CDN เพิ่มการพึ่งพารันไทม์ ดังนั้นหาก CDN หยุดทำงานไซต์ของคุณก็เช่นกัน เป็นปัญหาด้านความปลอดภัยเนื่องจากใครก็ตามที่ควบคุม cdn สามารถเปลี่ยนไฟล์ยอดนิยมและฉีดสคริปต์ลงในไซต์ของคุณได้ นอกจากนี้ยังเป็นปัญหาด้านความเป็นส่วนตัวเนื่องจากเบราว์เซอร์ของผู้ใช้ร้องขอไฟล์จากเซิร์ฟเวอร์ของบุคคลที่สามแทนที่จะเป็นของคุณเอง
TxRegex

3
@TxRegex ในบางขั้นตอนขอแนะนำให้อ้างอิงถึง CDN แทนที่จะเป็นเซิร์ฟเวอร์ของเว็บแอป เนื่องจากเบราว์เซอร์ของผู้ใช้มักจะแคชไลบรารียอดนิยมเช่น Bootstrap ในขณะที่อ่านไซต์อื่น ๆ แต่ยัง
ไง

0

ใช้ไฟล์คอนฟิกูเรชัน nmp (เพิ่มลงในโปรเจ็กต์เว็บของคุณ) จากนั้นเพิ่มแพ็คเกจที่จำเป็นในลักษณะเดียวกับที่เราใช้ bower.json และบันทึก Visual Studio จะดาวน์โหลดและติดตั้ง คุณจะพบแพ็คเกจภายใต้โหนด nmp ของโปรเจ็กต์ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.