angular项目部署后要运行起来要有多麻烦

  • 我用angular6开发的前端项目,使用命令ng build --prod --aot编译了项目
    拷贝到JAVA项目的webapp下面
  • SpringMVCJAVA项目中通过配置可以访问静态资源了。
    于是将编译后的angular项目拷贝到
    webapp/a目录下
  • 浏览器中访问主页:http://localhost:8080/项目名称/ng/index.html
    显示出白板,看了控制台提示index.html中几个js文件的引用有问题,遂手动修改路径
    然后主页算是能打开了,但是点击打开其他页面时候又提示N多错误:
    图片描述
  • 我就想问问,你们编译后的angular项目拷贝到JAVA项目中,
    也要修改很多路径引用上的问题?
    有没有什么批量解决的方法?还有,能提示下上面图片中的错误我要如何解决么?
阅读 6.1k
4 个回答

不要凭空猜测部署方式,明明官方文档都有部署策略: https://angular.io/guide/depl...

官方文档建议你按照产品环境build之后直接放在web server下,不需要丢给web application

angular.json

...
"configurations": {
    "production": {
      "fileReplacements": [
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.prod.ts"
        }
      ],
      "optimization": true,
      "outputHashing": "all",
      "sourceMap": false,
      "extractCss": true,
      "namedChunks": false,
      "aot": true,
      "extractLicenses": true,
      "vendorChunk": false,
      "buildOptimizer": true,
      "baseHref": "/static/",     // 这是打包以后需要改的地址 访问地址就是   https://www.xxx.com/static/index.html  **特别注意**:结尾一定要加`/`
      "budgets": [
        {
          "type": "initial",
          "maximumWarning": "2mb",
          "maximumError": "5mb"
        }
      ]
    },
}
...    

angular6以上不在需要去package.json里面配置一长串东西只需要"build:prod": "ng build --configuration=production",它会执行上面代码你配置的东西。

ng build --prod --aot --base-href /项目名称/ng/ --deploy-url /项目名称/ng/

感谢回答,已经解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进