需要修改nginx配置,通过sub_filter实现路径替换:
location /yd/ {
alias /usr/share/nginx/html/yd/;
# 启用sub_filter替换
sub_filter_once off;
sub_filter 'src="/' 'src="/yd/';
sub_filter 'href="/' 'href="/yd/';
# 需要设置这两个响应头
proxy_set_header Accept-Encoding "";
add_header Content-Type text/html;
}
location / {
root /usr/share/nginx/html;
}
关键点说明:
- 使用
sub_filter
将绝对路径/
开头的资源替换为/yd/
开头 sub_filter_once off
表示替换所有匹配项而不仅是第一个- 需要设置
Accept-Encoding
头为空以禁用gzip压缩,否则替换无法生效 alias
指令确保正确映射物理路径- 需要同时保留根目录的location配置
替代方案:修改HTML使用相对路径(推荐):
<script src="aa.js"></script>
<script type="module" crossorigin src="assets/index-xx.js"></script>
这样无需nginx配置修改,资源路径会自动基于当前目录/yd/解析
建议是把js资源的路径改一下,改成相对路径。具体参考AI的回答。