如何修改WebLogic 12c上Angular 8应用的上下文根为指定路径
修改Angular应用在WebLogic 12c的上下文根为/__protected/demo-angular
我来帮你搞定这个上下文根修改的问题,针对WebLogic 12c和Angular 8的场景,有几种可靠的方案,你可以根据实际情况选择:
方案一:通过weblogic.xml配置(推荐,持久化生效)
这种方法会把上下文根配置打包进WAR包,后续重新部署也不会丢失配置,是最稳妥的方式:
- 在Angular项目中添加WEB-INF配置
在项目的src目录下新建WEB-INF文件夹,然后在里面创建weblogic.xml文件,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd"> <!-- 指定你需要的上下文根 --> <context-root>/__protected/demo-angular</context-root> </weblogic-web-app>
- 配置Angular打包时复制WEB-INF目录
打开项目根目录的angular.json文件,找到architect -> build -> options -> assets数组,添加一行配置,确保打包时把WEB-INF目录复制到dist文件夹中:
"assets": [ "src/favicon.ico", "src/assets", // 新增这一行 {"glob": "**/*", "input": "src/WEB-INF", "output": "/WEB-INF"} ]
- 重新打包并部署
执行带base href参数的生产构建命令(确保Angular路由适配新的上下文根):
ng build --prod --base-href "/__protected/demo-angular/"
然后用新生成的dist目录文件重新打包成WAR,部署到WebLogic即可,此时应用的访问URL会自动变成https://domain_name/__protected/demo-angular。
方案二:WebLogic控制台手动修改(临时生效,适合快速测试)
如果只是临时测试,不想修改项目配置,可以直接在WebLogic控制台修改:
- 登录WebLogic管理控制台,左侧导航栏找到部署,找到已部署的
demo-angular应用。 - 点击应用名称进入详情页,切换到设置标签页。
- 在上下文根输入框中,将原来的
demo-angular修改为/__protected/demo-angular。 - 点击页面下方的保存按钮,然后重启该应用,新的上下文根就会生效。
⚠️ 注意:这种方式的修改是临时的,如果后续重新部署WAR包,WebLogic会重新读取WAR包的配置(或者默认生成上下文根),之前手动修改的内容会被覆盖。
关键注意点:Angular路由适配
修改上下文根后,一定要确保Angular的base href正确配置,否则会出现路由跳转404的问题。方案一中的--base-href参数已经帮你处理了这个问题,它会自动修改dist/index.html中的<base href>标签内容为/__protected/demo-angular/。如果忘记加这个参数,你也可以手动修改index.html中的对应标签。
内容的提问来源于stack exchange,提问作者Amy Doxy
相关产品推荐
相关产品推荐

