ไม่ได้โหลดสไตล์ชีทเนื่องจากประเภท MIME


381

ฉันกำลังทำงานบนเว็บไซต์ที่ใช้gulpในการคอมไพล์และเบราว์เซอร์ซิงค์เพื่อให้เบราว์เซอร์ซิงค์กับการเปลี่ยนแปลงของฉัน

งานอึกรวบรวมทุกอย่างถูกต้อง แต่บนเว็บไซต์ฉันไม่เห็นสไตล์ใด ๆ และคอนโซลแสดงข้อความแสดงข้อผิดพลาดนี้:

ปฏิเสธที่จะใช้สไตล์จาก ' http: // localhost: 3000 / asset / styles / custom-style.css ' เนื่องจากประเภท MIME ('text / html') ไม่ใช่สไตล์ชีท MIME ที่รองรับและเปิดใช้งานการตรวจสอบ MIME อย่างเข้มงวด

ตอนนี้ฉันไม่เข้าใจว่าทำไมสิ่งนี้จึงเกิดขึ้น

HTML มีไฟล์เช่นนี้ (ซึ่งฉันค่อนข้างแน่ใจว่าถูกต้อง):

<link rel="stylesheet" type="text/css" href="assets/styles/custom-style.css"/>

และสไตล์ชีทนั้นเป็นการผสานระหว่างรูปแบบการบูตและแบบอักษรที่ยอดเยี่ยมในตอนนี้ (ยังไม่มีการกำหนดเอง)

เส้นทางนี้ถูกต้องเช่นกันเนื่องจากเป็นโครงสร้างโฟลเดอร์:

index.html
assets
|-styles
  |-custom-style.css

แต่ฉันได้รับข้อผิดพลาด

มันจะเป็นอะไร? นี่เป็นสิ่งที่ (อาจจะเป็นการตั้งค่าหรือไม่) สำหรับ gulp / browserync


ฉันได้รับสิ่งนี้เมื่อสไตล์ชีทที่เชื่อมโยงของฉันเริ่มต้นด้วยแท็ก html <style ... แทนที่จะเป็นกฎสไตล์โดยตรง ฉันได้รับสิ่งนี้เมื่อเชื่อมโยงในไฟล์ html ที่โหลดในภายหลัง (AngularJS) ดังนั้นฉันจึงเปลี่ยนเป็นการโหลดแบบไดนามิกที่การโหลดหน้าเว็บผ่าน JavaScript และปัญหาก็หายไป
Newclique

82
มันเกิดขึ้นเมื่อคุณตั้งค่า URL ที่ไม่ถูกต้องเป็นไฟล์หรือเมื่อเซิร์ฟเวอร์ของคุณไม่ได้รับการกำหนดค่าอย่างถูกต้อง ในผลลัพธ์เบราว์เซอร์ไม่ได้รับสไตล์ชีท แต่ได้รับ HTML บางอย่างที่มีสถานะ 404 และมีส่วนหัว "ประเภทเนื้อหา" เนื่องจากเบราว์เซอร์ได้รับบางสิ่งจากเซิร์ฟเวอร์จึงไม่ได้บอกคุณว่าไม่มีคำตอบ แต่จะบอกให้คุณทราบว่าไฟล์ประเภท MIME ไม่ถูกต้อง วิธีที่เร็วที่สุดในการตรวจสอบคือเพียงพยายามเปิดไฟล์โดยตรงhttp://localhost:3000/assets/styles/custom-style.cssในแท็บใหม่
RussCoder

6
สำหรับฉันมันเป็นกรณีที่ RussCoder อธิบาย เหตุผลเบื้องหลังนี้คือฉันใช้ Angular และลืมเพิ่มไฟล์ css ลงในบรรจุภัณฑ์ลักษณะใน angular.json ดังนั้นมันจึงถูกละเว้นในขณะที่สร้างแอป
จานะ

1
ฉันสามารถแก้ไขปัญหานี้ได้ด้วยการกำหนดค่าความปลอดภัยแบบสปริง กำลังบล็อกการเข้าถึงโฟลเดอร์ทรัพยากร
sndu

2
การproxy.conf.jsonตั้งค่าที่ไม่ถูกต้องทำให้เราเกิดข้อผิดพลาดแปลก ๆ นี้เนื่องจากการส่งต่อคำขอไปยัง API ส่วนหลังทำงานไม่ถูกต้องดังนั้นการตอบกลับข้อผิดพลาด HTML
ktsangop

คำตอบ:


137

สำหรับแอปพลิเคชัน Node.js ให้ตรวจสอบการกำหนดค่าของคุณ:

app.use(express.static(__dirname + '/public'));

โปรดสังเกตว่า/publicไม่มีเครื่องหมายสแลชในตอนท้ายดังนั้นคุณจะต้องรวมไว้ในตัวเลือก href ของ HTML:

href="/css/style.css">

หากคุณไม่ ได้แก่ ทับ ( /public/) href="css/style.css"แล้วคุณก็สามารถทำได้


href = "/ assets / style.css"> ในกรณีของฉันแก้ปัญหาได้!
Sergio Guerjik

127

ฉันคิดว่าปัญหาเป็นกับห้องสมุด CSS เริ่มต้นด้วยความคิดเห็น

ขณะที่กำลังพัฒนาฉันไม่ย่อขนาดไฟล์และไม่ลบความคิดเห็น นี่หมายความว่าสไตล์ชีทเริ่มต้นด้วยความคิดเห็นทำให้มันถูกมองว่าเป็นสิ่งที่แตกต่างจาก CSS

การลบไลบรารีและวางลงในไฟล์ผู้ขาย (ซึ่งถูกย่อให้เล็กสุดโดยไม่มีข้อคิดเห็น) แก้ไขปัญหาได้

อีกครั้งฉันไม่แน่ใจ 100% ว่านี่เป็นการแก้ไข แต่มันก็ยังชนะสำหรับฉันตามที่คาดไว้ตอนนี้


4
การแก้ไขครึ่งเนื่องจากถ้าคุณไม่ต้องการใส่ css นี้ทั้งหมดในผู้ขายคุณควรทำอย่างไร เล็กสุด node_modules ทุกครั้งที่คุณทดสอบแอพของคุณ? Doh ... คุณพบบางสิ่งที่จะรวบรวมโมดูลบางอย่างหรือไม่?
SteamFire

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

3
ฉันพบปัญหาเดียวกันนี้และพบว่าฉันพยายามโหลดเวอร์ชันย่อของไฟล์ที่อยู่บนเซิร์ฟเวอร์เป็นไฟล์ที่ไม่ย่อเล็กสุด ดังนั้นฉันพยายามโหลด "custom-style.min.css" เมื่อไฟล์บนเซิร์ฟเวอร์คือ "custom-style.css" เมื่อฉันเปลี่ยนลิงค์เพื่อโหลดทรัพยากรที่ถูกต้องทุกอย่างทำงานได้ดี
โปรแกรมเมอร์ Dan

ปัญหาไม่ได้ จำกัด อยู่ที่ CSS ฉันยังได้รับ 404 ในไฟล์ JS ซึ่งเกิดจากความคิดเห็นในบรรทัดแรก
ดำ

80

ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อคุณไม่ได้อ้างถึงไฟล์ CSS ของคุณอย่างถูกต้อง

ตัวอย่างเช่นหากลิงค์แท็กของคุณคือ

<link rel="stylesheet" href="styles.css">

แต่ไฟล์ CSS ของคุณชื่อstyle.css(โดยไม่มีวินาที) มีโอกาสที่คุณจะเห็นข้อผิดพลาดนี้


4
เกิดอะไรขึ้นกับฉัน ฉันลองทุกคำตอบที่นี่ (เปลี่ยนชนิด mime ลบความคิดเห็น CSS เปลี่ยน node.js config ... ) สิ่งที่ฉันต้องทำคือแก้ไขตัวพิมพ์ผิดในชื่อ CSS Doh!
AJPerez

5
เพื่อเพิ่มคำตอบนี้ต้องแน่ใจว่าอึกจริงพบไฟล์ css และประปาลงใน dist ของคุณ เมื่อใดก็ตามที่ฉันได้รับข้อผิดพลาดนี้เป็นเพราะฉันเมาเส้นทางของฉันไปยังไฟล์ css อย่างใดและมันก็ไม่ได้อยู่ในไดเรกทอรีสร้าง
LAdams87

5
ใช่เหมือนกันสำหรับฉันพิมพ์ผิดง่ายและโง่ ฉันคิดว่ามันทำอะไรที่เซิร์ฟเวอร์ส่งหน้าการตอบกลับ 404 ดังนั้นเบราว์เซอร์ของคุณจะได้รับหน้า 404 และบอกคุณว่ามันไม่ถูกต้อง css ... ซึ่งเป็นเรื่องจริง
tanou

62

ในกรณีส่วนใหญ่นี้อาจจะเป็นเพียงเส้นทางของไฟล์ CSS เป็นสิ่งที่ผิด ดังนั้นเว็บเซิร์ฟเวอร์กลับมาstatus: 404พร้อมกับเพย์Not Foundโหลดเนื้อหาบางhtmlประเภท

เบราว์เซอร์ทำตามเส้นทางนี้ (ผิด) จาก <link rel="stylesheet" ...>แท็กด้วยความตั้งใจที่จะใช้สไตล์ CSS แต่ชนิดเนื้อหาที่ส่งคืนจะขัดแย้งกับการบันทึกข้อผิดพลาด

ป้อนคำอธิบายภาพที่นี่


ปัญหาของฉันคือเส้นทางไม่ถูกต้อง แต่เส้นทางที่ไม่ดีนี้เกิดจากฐาน href ที่กำหนดไว้สำหรับโครงการเชิงมุมของฉันไม่ถูกต้อง หากบุคคลอื่นเริ่มเห็นข้อผิดพลาดนี้หลังจากอัปเดตฐาน href ของคุณอาจเป็นสาเหตุ
Krejko

1
ขอบคุณที่สละปัญหาในการทำเอกสารอย่างครบถ้วนและชัดเจนว่าข้อผิดพลาด 404 ในไฟล์ CSS สามารถสร้างข้อความแสดงข้อผิดพลาดที่น่า
สงสัย

1
อีกวิธีหนึ่งในการแก้ไขปัญหาวาง URL ที่คุณได้รับข้อผิดพลาดนี้ไว้ในแท็บอื่นหากคุณไม่เห็น CSS อาจเป็นปัญหานี้
BlackICE

กว่าคำแนะนำของคุณ
Jason Zhou

52

สร้างโฟลเดอร์เพียงด้านล่าง / ด้านบนไฟล์ style.css <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">ตามโครงสร้างเชิงมุมและให้การเชื่อมโยงเช่น

ป้อนคำอธิบายภาพที่นี่


23
ทำไมจึงใช้งานได้ ข้อผิดพลาดระบุว่า "text / html" ไม่ใช่ประเภท MIME ที่รองรับ
James Bateson

6
ในกรณีของฉันข้อผิดพลาดหายไปลักษณะ css แต่ไม่ได้ใช้ .. : /
Andru

2
ฉันไม่ได้ใช้จ่าย aome เวลามากขึ้นในการอ่านเกี่ยวกับปัญหานี้และการเปลี่ยนแปลงประเภทของไฟล์ CSS ibto อย่างอื่นอาจทำให้เกิดปัญหาร้ายแรงเช่น CSS ถูกอ่านเป็น HTML โดยเซิร์ฟเวอร์
นิค

ใน AngularDart รูทสำหรับ index.html คือโฟลเดอร์ 'เว็บ' ไม่ใช่โฟลเดอร์หลักของโครงการ ดังนั้นไฟล์ css ทั้งหมดจะต้องอยู่ในโฟลเดอร์เว็บ เช่นนี้ "[projectfolder] \ web [yourcssfileshere]" ดังนั้นหากคุณพยายามนำเข้าไฟล์ css ที่อยู่นอกเว็บโฟลเดอร์จะไม่พบ
Wael

40

ฉันมีข้อผิดพลาดนี้สำหรับเทมเพลต Bootstrap

<link href="starter-template.css" rel="stylesheet">

จากนั้นฉันก็ลบออกrel="stylesheet"จากลิงค์คือ:

<link href="starter-template.css">

และทุกอย่างทำงานได้ดี ลองทำเช่นนี้หากคุณใช้เทมเพลต Bootstrap


3
จับดี. เกิดข้อผิดพลาดในขณะนี้
คนรวย

1
ตามที่นั่งเล่นมาตรฐาน (ข้อ 4.2.4) , "การเชื่อมโยงองค์ประกอบต้องมีแอตทริบิวต์ rel หรือแอตทริบิวต์ itemprop แต่ไม่ใช่ทั้งสอง." ดังนั้นการลบแอrelททริบิวเพียงแค่ลบการทำงานของการรวมสไตล์ชีท
Artjom B.

นี้ทำงานได้แปลกสำหรับฉัน

34

ฉันเปลี่ยน 'href' -> 'src' แล้ว ดังนั้นจากนี้

<link rel="stylesheet" href="dist/photoswipe.css">

สำหรับสิ่งนี้:

<link rel="stylesheet" src="dist/photoswipe.css">

มันได้ผล ฉันไม่รู้ว่าทำไม แต่ทำงานได้


1
แม้ว่ามันจะใช้งานได้สำหรับฉันเช่นกันนี่เป็นแอตทริบิวต์ที่ถูกต้องหรือไม่
sr9yar

1
@ sr9yar คุณถูกต้องตามvalidator.w3.orgมันไม่ถูกต้องที่จะมี src ในลิงค์ดังนั้นจึงเป็นการดีที่เป็นโปรแกรมแก้ไขด่วนอย่างรวดเร็ว แต่ทันทีที่คุณมีเวลาอีกเล็กน้อยฉันขอแนะนำให้หาข้อมูลเพิ่มเติมอีก วิธีแก้ปัญหาที่ถูกต้อง
Sebastian Voráč

20

ความคิดเห็นในไฟล์ของคุณจะนำไปสู่สิ่งนี้ ตัวย่อบางตัวจะไม่ลบความคิดเห็น

นอกจากนี้

หากคุณใช้Node.jsและตั้งค่าสแตติกไฟล์ของคุณโดยใช้expressเช่น:

app.use(express.static(__dirname + '/public'));

คุณต้องระบุที่อยู่ไฟล์อย่างถูกต้อง

ในกรณีของฉันทั้งคู่เป็นปัญหาฉันจึงนำหน้าลิงก์ CSS ของฉันด้วย "/css/styles.css"

ตัวอย่าง:

<link type="text/css" rel="stylesheet" href='/css/styles.css">

โซลูชันนี้สมบูรณ์แบบเนื่องจากพา ธ เป็นปัญหาหลักสำหรับ CSS ที่ไม่แสดงผล


18

ฉันอ้างถึงไฟล์ CSS (ธีม Angular ในกรณีของฉัน) ในส่วนสไตล์ของการกำหนดค่า Angular 6 build ของฉันใน angular.json:

ป้อนคำอธิบายภาพที่นี่

นี่ไม่ได้ตอบคำถาม แต่อาจเป็นวิธีแก้ปัญหาที่เหมาะสมเช่นเดียวกับฉัน


3
นั่นเป็นคำตอบที่ถูกต้องสำหรับโครงการ Angular-CLI 6
Torsten Barthel

14

ตามที่กล่าวถึงในโพสต์นี้โซลูชันบางตัวใช้งานได้สำหรับฉัน แต่ CSS ใช้ไม่ได้กับหน้าเว็บ

เพียงแค่ฉันย้ายไดเรกทอรี "css" ไปที่ไดเรกทอรี "Assest /" และทุกอย่างทำงานได้ดี

<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="assets/css/site.css" >

เจ๋ง (Y) แก้ไขปัญหาของฉัน
จักรี

12

สำหรับผู้อื่นที่ใช้ Angular-CLI และเผยแพร่ไปยังโฟลเดอร์ย่อยบนเว็บเซิร์ฟเวอร์ให้ตรวจสอบคำตอบนี้:

เมื่อคุณปรับใช้กับเส้นทางที่ไม่ใช่รูทภายในโดเมนคุณจะต้องอัปเดต<base href="https://stackoverflow.com/">แท็กด้วยตนเองdist/index.html.

ในกรณีนี้คุณจะต้องอัปเดตเป็น <base href="https://stackoverflow.com/sub-folder/">

https://github.com/angular/angular-cli/issues/1080


10

ปัญหาของฉันคือฉันใช้ webpack และในลิงค์ HTML CSS ของฉันฉันมีเส้นทางสัมพัทธ์และทุกครั้งที่ฉันไปยังหน้าเว็บที่ซ้อนกันที่จะแก้ไขเส้นทางที่ไม่ถูกต้อง:

<link rel="stylesheet" href='./index.css'>

ดังนั้นทางออกง่ายๆคือการลบ.เนื่องจากของฉันเป็นแอปพลิเคชันหน้าเดียว

แบบนี้:

<link rel="stylesheet" href='/index.css'>

ดังนั้นจึงแก้ไขได้เสมอ /index.css


ใช่ในกรณีของฉันฉันลืมลบเส้นทางญาติเหล่านี้ออกจากไฟล์ index.html ของฉันและกำลังเรียกใช้ webpack ในโหมดการใช้งานจริง ไม่จำเป็นต้องใช้พา ธ เหล่านี้เนื่องจาก webpack ลิงก์ไฟล์ css แบบไดนามิกผ่าน webpack.prod.js
Kewal Shah

10

ฉันมีปัญหากับเว็บไซต์ที่ฉันรู้ว่าทำงานออนไลน์เมื่อฉันย้ายไปยัง localhost และ PhpStorm

สิ่งนี้ใช้ได้ดีทางออนไลน์:

    <link rel="stylesheet" href="/css/additional.css">

แต่สำหรับ localhost ฉันต้องกำจัดเครื่องหมายทับ:

    <link rel="stylesheet" href="css/additional.css">

ดังนั้นฉันกำลังตอกย้ำคำตอบที่ให้ไว้ที่นี่แล้ว - อาจเป็นเส้นทางหรือการสะกดผิดมากกว่าปัญหาการตั้งค่าเซิร์ฟเวอร์ที่ซับซ้อน ข้อผิดพลาดในคอนโซลเป็นปลาเฮอริ่งแดง ต้องตรวจสอบแท็บเครือข่ายสำหรับ 404 ก่อน

ในบรรดาคำตอบที่ให้ไว้ที่นี่เป็นวิธีแก้ปัญหาบางอย่างที่ไม่ถูกต้อง นอกจากนี้จากการtype="text/html"หรือการเปลี่ยนแปลงhrefที่จะsrcไม่ได้คำตอบ

หากคุณต้องการมีคุณสมบัติทั้งหมดเพื่อตรวจสอบความถูกต้องของตัวตรวจสอบความถูกต้องและ IDE ของคุณควรให้ค่าสื่อและสิ่งที่relควรเป็นstylesheetเช่น:

    <link rel="stylesheet" href="css/additional.css" type="text/css" media="all">

9

ฉันรู้ว่ามันอาจอยู่นอกบริบท แต่การเชื่อมโยงไฟล์ที่ไม่มีอยู่อาจทำให้เกิดปัญหานี้ตามที่เคยเกิดขึ้นกับฉันมาก่อน

<!-- bootstrap grid -->
<link rel="stylesheet" href="./css/bootstrap-grid.css" />

หากไฟล์นี้ไม่มีอยู่คุณจะพบปัญหาดังกล่าว


8

ฉันมีปัญหาเดียวกัน

หากโครงสร้างโครงการของคุณเป็นเหมือนต้นไม้ต่อไปนี้:

index.html
assets
|-styles
  |-custom-style.css
server
  |- server.js

ฉันแนะนำให้เพิ่มโค้ดต่อไปนี้ในserver.js:

var path = require('path')
var express = require('express')
var app = express()

app.use('/assets', express.static(path.join(__dirname, "../assets")));

หมายเหตุ: Path เป็นโมดูล Node.js ในตัวดังนั้นจึงไม่จำเป็นต้องติดตั้งแพ็กเกจนี้ทาง npm


7

เพิ่มในรายการคำตอบที่ยาวปัญหานี้ก็เกิดขึ้นกับฉันเพราะฉันไม่ได้ตระหนักถึงเส้นทางที่ผิดจากมุมมองเบราว์เซอร์ซิงค์

รับโครงสร้างโฟลเดอร์ที่เรียบง่ายนี้:

package.json
app
  |-index.html
  |-styles
      |-style.css

hrefภายในแอตทริบิวต์<link>ในindex.htmlจะต้องมีapp/styles/style.cssและไม่ได้styles/style.css


อันที่จริงเพียงแค่พิมพ์ผิดในเส้นทางให้ฉันข้อผิดพลาดเดียวกันนี้
Julesezaar

ว้าวมันใช้งานได้ดีสำหรับฉันขอบคุณมาก ฉันเป็นตัวอักษรเกี่ยวกับการที่จะให้ขึ้น
Vash

7

คุณสามารถเปิดเครื่องมือ Google Chrome เลือกแท็บเครือข่ายโหลดหน้าเว็บของคุณใหม่และค้นหาคำขอไฟล์ของ CSS และค้นหาสิ่งที่มีอยู่ในไฟล์

บางทีคุณอาจทำอะไรผิดพลาดเมื่อคุณรวมสองไลบรารีในไฟล์ของคุณรวมถึงอักขระหรือส่วนหัวบางอย่างที่ไม่ถูกต้องสำหรับ CSS


1
น่าเสียดายที่ฉันลองแล้ว แต่มันก็ไม่ได้ช่วยจริงๆคำขอล้มเหลวทันทีและมี URL คำขอ (ซึ่งถูกต้อง)
Nick Nick

6

ในกรณีที่คุณใช้ Express โดยที่ JS ไม่ต้องลอง:

app.use(express.static('public'));

ตัวอย่างเช่นไฟล์ CSS ของฉันอยู่ที่ public/stylesheets/app.css


5

สำหรับแอปพลิเคชัน Node.js ให้ใช้สิ่งนี้หลังจากนำเข้าโมดูลที่จำเป็นทั้งหมดในไฟล์เซิร์ฟเวอร์ของคุณ:

app.use(express.static("."));
  • ฟังก์ชันมิดเดิลแวร์ในตัว express.static ใน Express และสิ่งนี้ในไฟล์. html ของคุณ: <link rel="stylesheet" href="style.css">

3
คุณไม่ต้องการให้รหัสเซิร์ฟเวอร์แก่สาธารณชนใช่ไหม
Ki Jéy

5

ฉันได้รับปัญหาเดียวกันและจากนั้นฉันตรวจสอบว่าฉันเขียน:

<base href="./"> ใน index.html

จากนั้นฉันก็เปลี่ยนเป็น

<base href="/">

แล้วมันก็ใช้งานได้ดี



4

ในกรณีของฉันเมื่อฉันปรับใช้แพคเกจสดฉันมีมันออกจากโฟลเดอร์ HTML สาธารณะ มันมีเหตุผล

แต่เห็นได้ชัดว่ามีการเปิดใช้งานการตรวจสอบประเภท MIME อย่างเข้มงวดและฉันก็ไม่แน่ใจเหมือนกันว่ามันอยู่ข้างฉันหรือ บริษัท ที่ฉันโฮสต์ด้วย

แต่ทันทีที่ฉันย้ายโฟลเดอร์จัดแต่งทรงผมในไดเรกทอรีเดียวกับไฟล์ index.php ฉันหยุดรับข้อผิดพลาดและจัดแต่งทรงผมก็เปิดใช้งานได้อย่างสมบูรณ์แบบ


4

รูปแบบ Bootstrap ไม่ได้โหลด # 3411

https://github.com/angular/angular-cli/issues/3411

  1. ฉันติดตั้ง Bootstrap v. 3.3.7

    npm install bootstrap --save
  2. จากนั้นฉันเพิ่มไฟล์สคริปต์ที่จำเป็นลงในไฟล์apps[0].scriptsangular-cli.json:

    "scripts": [
        "../node_modules/bootstrap/dist/js/bootstrap.js"
    ],
    
    // And the Bootstrap CSS to the apps[0].styles array
    
    "styles": [
        "styles.css",
        "../node_modules/bootstrap/dist/css/bootstrap.css"
    ],
  3. ฉันเริ่มบริการ ng ใหม่

มันใช้งานได้สำหรับฉัน


4

หากเบราว์เซอร์ไม่พบไฟล์ css ที่เกี่ยวข้องก็อาจทำให้เกิดข้อผิดพลาดนี้

หากคุณใช้แอปพลิเคชันเชิงมุมคุณไม่จำเป็นต้องวางพา ธ ไฟล์ css บน index.html

 <link href="xxx.css" rel="stylesheet"> -->

คุณสามารถใส่พา ธ ไฟล์ css ที่เกี่ยวข้องลงในไฟล์ styles.css

@import "../node_modules/material-design-icons-iconfont/dist/material-design-icons.css";

นี่คือการแก้ไขสำหรับฉันลบลิงค์ href จาก index.html และใช้วิธีการนำเข้าใน styles.scss
IronWorkshop

3

หนึ่งในเหตุผลหลักสำหรับปัญหานี้คือไฟล์ CSS ที่พยายามโหลดไม่ใช่ไฟล์ CSS ที่ถูกต้อง

สาเหตุ:

  • ประเภท MIME ไม่ถูกต้อง
  • มีรหัส JavaScript ในสไตล์ชีต - (อาจเกิดขึ้นเนื่องจากการกำหนดค่าตัวรวม Webpack ไม่ถูกต้อง)

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

ข้อมูลที่มีประโยชน์สำหรับการพิจารณาเมื่อใช้ <link> ภายในแท็ก body

แม้ว่าการมีlinkแท็กภายในร่างกายไม่ใช่วิธีมาตรฐานในการใช้แท็ก แต่เราสามารถใช้สำหรับการเพิ่มประสิทธิภาพหน้า (ข้อมูลเพิ่มเติม: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery ) / หากธุรกิจใช้กรณีที่ต้องการ (เมื่อคุณแสดงเนื้อหาของเนื้อหาและเซิร์ฟเวอร์ที่กำหนดค่าให้ ต้องแสดงหน้า HTML ที่มีเนื้อหาที่ให้ไว้)

ในขณะที่อยู่ในแท็ก body เราต้องเพิ่มแอตทริบิวต์itemPropertyในlinkแท็กเช่น

<body>
    <!--  -->
      <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
    <!--  -->
</body>`

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการitemPropertyได้ดูใน/webmasters/55130/can-i-use-link-tags-in-the-body-of-an-html-document


3

โดยเข้าไปที่คอนโซลของเบราว์เซอร์> เครือข่าย> style.css ... คลิกที่มันและมันแสดงให้เห็นว่า "ไม่สามารถรับ / path / to / my / CSS" สิ่งนี้บอกฉันว่าลิงก์ของฉันผิด ฉันเปลี่ยนมันเป็นพา ธ ของไฟล์ CSS ของฉัน

เส้นทางเดิมก่อนการเปลี่ยนแปลงคือ localhost: 3000 / ตัวอย่าง / สาธารณะ / style.css เปลี่ยนเป็น localhost: 3000 / style.css แก้ไขมัน

หากคุณให้บริการไฟล์จาก app.use (express.static (path.join (__ dirname, "public"))); หรือ app.use (express.static ("สาธารณะ")); เซิร์ฟเวอร์ของคุณจะผ่าน "โฟลเดอร์นั้น" ไปยังเบราว์เซอร์เพื่อเพิ่มลิงก์ "/ourCssName.css" ในเบราว์เซอร์ของคุณ

โดยการเพิ่มเส้นทางอื่นในลิงก์ CSS ของเบราว์เซอร์คุณจะบอกให้เบราว์เซอร์ค้นหา css ตามเส้นทางที่ระบุ

โดยสรุป ... ตรวจสอบว่าลิงก์ CSS ของเบราว์เซอร์ของคุณชี้ไปที่ใด


2

หากคุณกำลังตั้งค่าสไตล์ใน JavaScript เป็น:

    var cssLink = document.createElement("link");
    cssLink.href = "./content.component.scss";
    cssLink.rel = "stylesheet";
   --> cssLink.type = "html/css";
    (iframe as HTMLIFrameElement).contentDocument.head.appendChild(cssLink);

จากนั้นเพียงแค่เปลี่ยน cssLint.type (แสดงโดยลูกศรในคำอธิบายด้านบน) เป็น "MIME":

   cssLink.type = "MIME";

มันจะช่วยคุณกำจัดข้อผิดพลาด


2

ปัญหานี้เกิดขึ้นเมื่อคุณใช้เครื่องมือ cli สำหรับการตอบสนองหรือเชิงมุมดังนั้นกุญแจคือการคัดลอกงานสร้างขั้นสุดท้ายทั้งหมดจากเครื่องมือเหล่านั้นเนื่องจากพวกเขาเริ่มต้นพวกเขาเป็นเซิร์ฟเวอร์ lite ของตัวเองซึ่งทำให้ URL ของคุณสับสน ... นำโฟลเดอร์บิวด์นั้นไปทิ้งไว้ในโฟลเดอร์สินทรัพย์ของโปรเจ็กต์แบ็คเอนด์เซิร์ฟเวอร์ของคุณและอ้างอิงมันจากเซิร์ฟเวอร์เอนด์แบ็กของคุณไม่ใช่เซิร์ฟเวอร์ที่มาพร้อมกับ Angular หรือ Reactjs มิฉะนั้นคุณจะใช้มันเป็น Front End เซิร์ฟเวอร์ API


2

ฉันเจอปัญหานี้ที่มีปัญหาเดียวกันคือการเพิ่มรูปลักษณ์และความรู้สึกที่กำหนดเองให้กับโฟลว์ผู้ใช้ Azure B2C สิ่งที่ฉันพบคือรูทที่เพจ html อ้างถึงคือ ../oauth/v2 (เช่นเส้นทางเซิร์ฟเวอร์ oauth) แทนที่จะเป็นเส้นทางไปยังที่เก็บข้อมูลบ๊อบของฉัน

การใส่ URL เต็มของหน้าเว็บเพื่อแก้ไขปัญหาสำหรับฉัน


2

ตรวจสอบว่าคุณมีการเปิดใช้งานการบีบอัดหรือปิดการใช้งาน หากคุณใช้งานหรือมีคนเปิดใช้งานapp.use(express.static(xxx))จะไม่ช่วย ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณอนุญาตให้มีการบีบอัด

ฉันเริ่มเห็นข้อผิดพลาดที่คล้ายกันเมื่อฉันเพิ่ม Brotli และปลั๊กอินการบีบอัดใน Webpack ของฉัน เซิร์ฟเวอร์ของคุณต้องรองรับการบีบอัดเนื้อหาประเภทนี้ด้วย

หากคุณใช้ Express สิ่งต่อไปนี้น่าจะช่วยได้:

app.use(url, expressStaticGzip(dir, gzipOptions)

โมดูลที่เรียกว่า: express-static-gzip

การตั้งค่าของฉันคือ:

const gzipOptions = {
  enableBrotli: true,
  customCompressions: [{
  encodingName: 'deflate',
  fileExtension: 'zz'
 }],
 orderPreference: ['br']
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.