在Angular CLI项目中,404错误通常发生在尝试从node_modules目录直接加载模块或资源时。这是因为Angular CLI的构建系统默认不会将node_modules中的文件复制到最终的生产构建中。
出现404错误的主要原因包括:
// angular.json
{
"projects": {
"your-project-name": {
"architect": {
"build": {
"options": {
"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "**/*",
"input": "node_modules/some-module/dist",
"output": "/assets/some-module/"
}
]
}
}
}
}
}
}
对于JavaScript模块:
import * as module from 'module-name';
对于CSS文件:
// 在styles.css或styles.scss中
@import '~module-name/path/to/style.css';
npm install --save-dev @angular-builders/custom-webpack
{
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser",
"options": {
"customWebpackConfig": {
"path": "./custom-webpack.config.js"
}
}
}
}
}
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'assets/'
}
}
]
}
};
这些解决方案适用于:
ng build --prod
)加载第三方字体示例:
{
"glob": "**/*.woff2",
"input": "node_modules/font-awesome/fonts",
"output": "/assets/fonts/"
}
@font-face {
font-family: 'FontAwesome';
src: url('/assets/fonts/fontawesome-webfont.woff2') format('woff2');
}
通过以上方法,您应该能够解决Angular CLI项目中加载node_modules资源时的404错误问题。
没有搜到相关的文章