[GH-ISSUE #709] [Feature] 新增前端静态资源 vite config.js base的配置 #479

Closed
opened 2026-03-03 01:03:39 +03:00 by kerem · 3 comments
Owner

Originally created by @hululuuuuu on GitHub (May 20, 2025).
Original GitHub issue: https://github.com/certimate-go/certimate/issues/709

功能描述 / Description

举例: 我希望通过 www.aaa.com/certimate/ 访问到这个项目 但是因为前端打包 vite.config.ts 配置不支持 base 导致默认静态资源 路径为 / 生成的静态文件路径为 /assets/xxxxx.js 包括不仅限于 js ,图片,css 等静态资源。
如图

Image 希望在 ui/vite.config.js 新增 base 配置。可以在启动的时候 docker 通过 环境变量来进行修改。 目前临时使用 nginx ` location /certimate/ { proxy_pass http://127.0.0.1:8090/; # 保持尾部斜杠! proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 启用子过滤器 sub_filter_types text/html; sub_filter_once off; sub_filter 'href="/' 'href="/certimate/'; sub_filter 'src="/' 'src="/certimate/';
        # 注意启用 gzip 解压(如果后端返回是压缩的 HTML)
        proxy_set_header Accept-Encoding "";  # 禁用 gzip,否则无法替换
        sub_filter_last_modified on;
    }

`
对返回的 html 进行替换,但是对js 动态生成的资源链接不生效。

请求动机 / Motivation

通过 nginx 反向代理配置 /xxxx/ 可以访问该项目

其他 / Miscellaneous

No response

贡献 / Contribution

  • 我乐意为此贡献代码! / I am interested in contributing to this issue!
Originally created by @hululuuuuu on GitHub (May 20, 2025). Original GitHub issue: https://github.com/certimate-go/certimate/issues/709 ### 功能描述 / Description 举例: 我希望通过 www.aaa.com/certimate/ 访问到这个项目 但是因为前端打包 vite.config.ts 配置不支持 base 导致默认静态资源 路径为 / 生成的静态文件路径为 /assets/xxxxx.js 包括不仅限于 js ,图片,css 等静态资源。 如图 <img width="954" alt="Image" src="https://github.com/user-attachments/assets/738ae55c-4f65-4b0f-bf5f-9c254680dbfa" /> 希望在 ui/vite.config.js 新增 base 配置。可以在启动的时候 docker 通过 环境变量来进行修改。 目前临时使用 nginx ` location /certimate/ { proxy_pass http://127.0.0.1:8090/; # 保持尾部斜杠! proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 启用子过滤器 sub_filter_types text/html; sub_filter_once off; sub_filter 'href="/' 'href="/certimate/'; sub_filter 'src="/' 'src="/certimate/'; # 注意启用 gzip 解压(如果后端返回是压缩的 HTML) proxy_set_header Accept-Encoding ""; # 禁用 gzip,否则无法替换 sub_filter_last_modified on; } ` 对返回的 html 进行替换,但是对js 动态生成的资源链接不生效。 ### 请求动机 / Motivation 通过 nginx 反向代理配置 /xxxx/ 可以访问该项目 ### 其他 / Miscellaneous _No response_ ### 贡献 / Contribution - [ ] 我乐意为此贡献代码! / I am interested in contributing to this issue!
kerem 2026-03-03 01:03:39 +03:00
Author
Owner

@hululuuuuu commented on GitHub (May 20, 2025):

Image
<!-- gh-comment-id:2892803699 --> @hululuuuuu commented on GitHub (May 20, 2025): <img width="979" alt="Image" src="https://github.com/user-attachments/assets/93293543-3dc5-4d0f-8a92-cfd525b1799e" />
Author
Owner

@fudiwei commented on GitHub (May 20, 2025):

duplicate #359

<!-- gh-comment-id:2894232834 --> @fudiwei commented on GitHub (May 20, 2025): duplicate #359
Author
Owner

@NorthNanmu commented on GitHub (Aug 9, 2025):

@hululuuuuu 下列nginx反代conf测试可用,摸索+Ai跑出来的

location ^~ /certimate/
        {
            proxy_pass http://127.0.0.1:8090/; #后端地址
            proxy_set_header Accept-Encoding ""; #关闭上游gzip压缩
            proxy_redirect / /certmate/; #重定向url
            sub_filter_types *; #对所有请求响应类型都做sub_filter指定的替换
            sub_filter_once off; #执行多次而不是一次
            # 替换所有资源路径
            sub_filter '/assets/' '/certmate/assets/';
            sub_filter '/static/' '/certmate/static/';
            sub_filter '/js/' '/certmate/js/';
            sub_filter '/css/' '/certmate/css/';
            sub_filter '/api/' '/certmate/api/';
            sub_filter '/imgs/' '/certmate/imgs/';
            sub_filter 'href="/' 'href="/certmate/';
            sub_filter 'src="/' 'src="/certmate/';
            sub_filter 'action="/' 'action="/certmate/';
            sub_filter '/logo.svg' '/certmate/logo.svg';
            access_log  /home/wwwlogs/certmate.log;
            }
<!-- gh-comment-id:3169673795 --> @NorthNanmu commented on GitHub (Aug 9, 2025): @hululuuuuu 下列nginx反代conf测试可用,摸索+Ai跑出来的 ```conf location ^~ /certimate/ { proxy_pass http://127.0.0.1:8090/; #后端地址 proxy_set_header Accept-Encoding ""; #关闭上游gzip压缩 proxy_redirect / /certmate/; #重定向url sub_filter_types *; #对所有请求响应类型都做sub_filter指定的替换 sub_filter_once off; #执行多次而不是一次 # 替换所有资源路径 sub_filter '/assets/' '/certmate/assets/'; sub_filter '/static/' '/certmate/static/'; sub_filter '/js/' '/certmate/js/'; sub_filter '/css/' '/certmate/css/'; sub_filter '/api/' '/certmate/api/'; sub_filter '/imgs/' '/certmate/imgs/'; sub_filter 'href="/' 'href="/certmate/'; sub_filter 'src="/' 'src="/certmate/'; sub_filter 'action="/' 'action="/certmate/'; sub_filter '/logo.svg' '/certmate/logo.svg'; access_log /home/wwwlogs/certmate.log; } ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#479
No description provided.