VS2017中.Net Core+Angular5项目导入Primeng CSS文件失败求助
解决.Net Core + Angular5项目中PrimeNG CSS导入无效的问题
我之前在VS2017创建的.Net Core + Angular5项目里也踩过这个坑,直接在index.html里用<link>标签引用node_modules里的PrimeNG CSS确实容易失效——主要原因是.Net Core默认不会把node_modules目录作为静态资源目录对外暴露,浏览器根本请求不到这些文件。给你几个亲测有效的解决办法:
方法一:通过angular-cli.json配置全局样式
Angular 5使用的是angular-cli.json(Angular 6+才换成angular.json),我们可以把PrimeNG的CSS文件添加到全局样式数组里,让Angular构建时自动打包进去:
- 找到项目中
ClientApp目录下的angular-cli.json文件 - 定位到
apps->styles节点,把PrimeNG的CSS路径添加进去:
"styles": [ "styles.css", "../node_modules/primeng/resources/themes/omega/theme.css", "../node_modules/primeng/resources/primeng.min.css", "../node_modules/primeicons/primeicons.css" // 如果用到PrimeIcons图标需要加这个 ]
- 重启Angular开发服务器(
ng serve),样式就会生效了
方法二:在全局style.css中用@import导入
如果不想修改angular-cli.json,也可以直接在项目根目录的src/styles.css里通过@import引入:
/* 在styles.css顶部添加 */ @import "../node_modules/primeng/resources/themes/omega/theme.css"; @import "../node_modules/primeng/resources/primeng.min.css"; @import "../node_modules/primeicons/primeicons.css";
这个方法同样会让Angular在构建时把这些CSS合并到最终的样式文件里,彻底避免路径问题。
额外提醒
别忘了先确保你已经正确安装了PrimeNG和依赖包:
npm install primeng --save npm install primeicons --save
之前你用<link>标签的方式之所以无效,是因为.Net Core的静态文件中间件默认只处理wwwroot目录下的资源,node_modules不在这个范围内,除非手动配置静态文件访问规则,但这种方式不如通过Angular构建流程处理规范,容易出各种路径问题。
内容的提问来源于stack exchange,提问作者Harsh Sharma
相关产品推荐
相关产品推荐

