我正在尝试使用Angular构建静态网站。我想要的是将一些全局css / js /图像文件添加到index.html
这是我在index.html
<link rel="stylesheet" type="text/css" href="css/layers.css">
我的css
文件夹位于与index.html
文件相同的级别
我为我添加的每个样式表(来自带有chrome的ng服务)收到此错误
拒绝申请来自&#39; http://localhost:4200/css/layers.css&#39;因为它的MIME类型(&#39; text / html&#39;)不是受支持的样式表MIME类型,并且启用了严格的MIME检查。
我也试过添加这个
#.angular-cli.json
"styles": [
"styles.css",
"css/layers.css"
],
我该如何解决这个问题?
我的角度设置是
Angular CLI: 1.6.5
Node: 8.1.4
OS: darwin x64
Angular: 5.2.2
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.6.5
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.5
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0
答案 0 :(得分:7)
@ sameera207评论中的答案是正确的,相对路径必须有效,我也有同样的问题,评论的答案对我有用。我试图重现你的错误,我在index.html的级别创建了css文件夹并添加了css文件,然后在样式数组中添加了路径。
"styles": [
"styles.css",
"./css/my-styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"../node_modules/tether/dist/css/tether.min.css"
],
然后重新启动服务器,我的意思是再次执行ng serve
并且正常工作。确保你已经完成了它并且恢复服务器,如果问题仍然存在,请告诉我,我很乐意帮助你。谢谢。
答案 1 :(得分:7)
您需要做的就是:
1)转到角度应用程序根目录下的.angular-cli.json。
2)修改styles数组以包含在styles.css
之前的bootstrap"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
注意:bootstrap的路径是相对于/src/index.html的,这就是你需要的原因&#34; ../"在node_modules之前。
3)退出当前的ng服务会话并重新开始。
您需要的只是:
1)转到角度应用程序根目录下的styles.css。
2)在顶部添加此行:
@import url('https://unpkg.com/bootstrap@3.3.7/dist/css/bootstrap.min.css');
答案 2 :(得分:3)
如果您已经添加了angularcli.json,则无需添加index.html cli将自动注入内容。因此,请从index.html中删除该行,然后一切都可以正常工作。
答案 3 :(得分:3)
针对将面临相同问题的人。
此错误消息的通常原因是,当浏览器尝试加载该资源时,服务器将返回HTML页面,例如,如果您的路由器捕获了未知路径并且显示的默认页面中没有404 error.
当然,这意味着该路径无论如何都不会返回预期的CSS file / image / icon /
... ref from here
假设我们有Angular 6
个项目,其文件结构是这样的
project
|-src
|-app
|-assets
|-environments
|----
假设我们需要将theming
文件夹(包含它们)直接放在src文件夹中。
project
|-src
|-app
|-assets
|-environments
|-vendor // Theming
|-theme-light.css
|theme-dark.css
如果我们试图像这样访问该主题文件。
<link rel="stylesheet" type="text/css" href: '../vendor/theme-dark.css'>
那会抛出一个错误
拒绝应用以下样式 “ http://localhost:4200/vendor/theme-dark.css”,因为它的MIME类型 ('text / html')不是受支持的样式表MIME类型,也不是严格的MIME 检查已启用。
如果我们在浏览器中粘贴了该URL,由于路径错误,该URL将不会提供普通的CSS文件。
解决方案
因此,您需要做的是找到正确的路径。 (我们可以从中找出过去的url
浏览并查看返回的内容)
在这种情况下,放置../src/
引用将解决错误
<link rel="stylesheet" type="text/css" href: '../src/vendor/theme-dark.css'>
注意:确切的路径和路由器配置取决于您如何设置项目和所使用的框架。
答案 4 :(得分:3)
我在我的 angular 项目中遇到了相同类型的错误。添加此 type="text/html"
段代码后,错误消失了。
<link rel="stylesheet" type="text/html" href="filename.css">
答案 5 :(得分:2)
在终端上使用npm i -S material-icons
安装了材料图标时,我遇到了同样的问题。
我已按照npm软件包安装中给出的说明进行操作,并在index.html中放置了一个链接,例如<link rel="stylesheet" type="text/css" href=<node_module_path/material-icons/iconfont/material-icons.css>
它抛出了its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
您必须实际将href中提到的路径粘贴到angular.json
数组下的styles
文件中
别忘了重启角度服务器,稍后您可以感谢我
FYI:Angular-V8.x,材质图标-V0.3.1
谢谢
答案 6 :(得分:0)
这是链接您的layers.css文件的代码。
<link rel="stylesheet" type="text/css" href="css/layers.css">
请从此行中删除type="text/css"
。
因此,代码将变为:
<link rel="stylesheet" href="css/layers.css">
使用此行,希望它现在可以工作。谢谢
答案 7 :(得分:0)
在Assets文件夹中创建一个新的CSS文件夹,然后将您的CSS文件放入CSS中,然后再次链接到新位置
Eg : - <link rel="stylesheet" href="assets/css/materialize.min.css">
答案 8 :(得分:0)
我尝试使用ng serve通过asp.net零运行角度代码,并遇到了这个问题。
通常所有使用ng serve命令运行的角度项目。但是,asp.net零框架最初会缩小css文件,然后执行ng服务过程。这两个内容已集成到命令npm start中。如果至少完成一次npm启动,则缩小的文件将存储在我们的本地文件中。因此,下次再执行一次,即使您进行serv服务,它也能正常工作。
因此,运行npm start
为我解决了这个问题。
答案 9 :(得分:0)
发生此问题是因为我定义了相同的* .css文件, 在* .html和angular.json文件中 在角度上
答案 10 :(得分:0)
在你的 angular.json 中,添加配置选项
<块引用>"extractCss": false,
喜欢这个
"options": {
"aot": true,
"outputPath": "dist",
"index": "src/index.html",
"extractCss": false,
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
...
答案 11 :(得分:0)
从 index.html
中删除这一行<link rel="stylesheet" type="text/css" href="css/layers.css">
然后转到 angular.json(从 angular 5 开始)或 angular-cli.json 取决于您的版本。在样式数组中设置 css 文件的路径,如下所示
"styles": [
"src/style1.css",
"src/style2.css"
],
最后,重新启动应用程序。 ng 服务
答案 12 :(得分:0)
(*注意:关于 asp.net 样板零(付费版本),但也可能是您的解决方案 *)
是的,@Franklin,虽然付费应用很奇怪,但让我反复看起来像一个健忘的老人。 ;-) 但可能与系统有关。
我确实发现了: support.aspnetzero.com/QA/Questions/7742/Refused-to-apply-style-from-:
“运行 >> gulp build << 在终端上命令并重新创建缩小的文件”
为我工作。 (再次;-))