You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Glassfish的docroot配置URL重写规则支持Angular路由

Glassfish 4 配置Angular路由重写规则教程

你原IIS规则的核心逻辑为所有非静态文件、非目录的请求全部重写到/v1/根路径,适配Angular前端路由,Glassfish 4自带URL重写模块,无需额外安装插件,可通过以下两种方式配置对应规则:


方式一:直接部署静态资源到docroot目录(全局配置)

适合将Angular打包后的静态文件直接放在Glassfish默认docroot目录的场景:

  • 先将Angular编译输出的所有静态资源放入Glassfish默认docroot目录下的v1子目录中
  • 打开Glassfish管理控制台(默认地址http://localhost:4848),依次进入「配置」→「server-config」→「虚拟服务器」→「server」
  • 切换到「URL重写」标签页,勾选启用URL重写功能
  • 新增一条重写规则,填写如下内容:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /v1/ [L]
  • 保存配置后重启Glassfish服务即可生效

方式二:将Angular应用打包为WAR包部署

适合将前端资源打包为独立WAR包部署的场景,只需在WAR包的WEB-INF目录下新增glassfish-web.xml配置文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
  <property name="rewriteEnabled" value="true"/>
  <property name="rewriteRules" value="
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /v1/ [L]
  "/>
</glassfish-web-app>

配置完成后重新部署WAR包即可生效,无需修改全局服务配置。


注意事项

  • 规则中的[L]参数对应IIS配置里的stopProcessing="true",表示匹配该规则后不再执行后续规则
  • 如果你的Angular应用配置的<base href>不是/v1/,请将重写目标路径调整为和<base href>一致的路径
  • 若需要保留原始请求路径参数,可将重写规则调整为RewriteRule ^(.*)$ /v1/?$1 [QSA,L]

内容的提问来源于stack exchange,提问作者Curtis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:36:02