-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: allow baseUrl for one-api #1576
base: main
Are you sure you want to change the base?
Conversation
@songquanpeng |
好的,我最近尽量尽快处理,谢谢 PR~ |
这个需求实际上用反代就可以完成了, 我比较建议在 oneapi 内部内置一个nginx 或者caddy, 这样修改特别方便, 根本不需要改代码. 另外你当前的实现, 前端部分是在编译时注入环境变量才可实现, 对于想用到这个功能的人来说, 必须重新编译前端, 才可以使用. 所以综合以上的情况, 我个人觉得直接加反代配置是更为可行更为方便的方案. |
后端方面将 one-api 顺便做一个静态服务器,我个人觉得不是一个主流的需求,nginx 本身就是相当轻量的,而将serve静态文件这个功能塞给one api 反而增加了不必要的事情。 前端方面应该可以使用SSR,这种运行方式的话,一般可以直接在运行时改变 base url。 |
@LeoQuote 前端方面的SSR可以提供更多的方案和资料吗?尤其是在不需要在服务端使用NodeJS serve的情况下。 |
不好意思,我说的ssr就是使用nodejs serve,如果想使用静态生成 HTML 的方式确实只有改代码重新编译才可以 |
一方面对于后端,如果额外安装一个nginx的话,以ubuntu的镜像为例,需要额外的大约6MB的磁盘空间。 另一方面,这并不是一个“不是一个主流”的需求,例如:
|
如果后端还需要一个nodejs的话,需要的磁盘空间、计算成本就更高了,比在build时加上一个配置进行一次性的构建整体的复杂性可能更高了。 |
谢谢你的解释👍🏿 |
@songquanpeng could you please assign reviewers to proceed? |
@haobibo 建议合并一下提交,同时修改一下提交格式,格式参考 https://www.conventionalcommits.org/en/v1.0.0/ |
Thank you @Laisky .
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1576 +/- ##
========================================
- Coverage 1.22% 1.21% -0.01%
========================================
Files 137 137
Lines 9917 9923 +6
========================================
Hits 121 121
- Misses 9782 9788 +6
Partials 14 14 ☔ View full report in Codecov by Sentry. |
@Laisky Thank you for your patience!
# clear existing variable, if any
unset REACT_APP_SERVER REACT_APP_BASE_URL
cd web/default
export REACT_APP_BASE_URL='/one-api'
jq ".homepage=\"${REACT_APP_BASE_URL}\"" package.json > tmp.json && mv tmp.json package.json
DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat VERSION) npm run build
cd -
BASE_URL="/one-api" go run -race . 请留意其中:1)
如果还有问题,请留言,我尽快修改。 |
What:
允许通过系统环境变量为one-api的服务URL加上前缀,下面的例子将允许把原来的
/api/status
路径变更至/one-api/api/status
:BASE_URL="/one-api" PORT=3000 one-api
如果不设置BASE_URL则默认为空,保持原有的URL pattern。
与之相对应,如果前端进行构建,则进行两处修改:
jq ".homepage=\"${REACT_APP_BASE_URL}\"" package.json > tmp.json && mv tmp.json package.json
)Why
一些模块中需要对one-api中进行集成,希望在同一个domain下的不同URL prefix下用nginx或其他网关反向代理不同的应用。
应用允许加上baseUrl的话会对反向代理的配置更加简单,包括前端部分。
Validation
我已确认该 PR 已自测通过,相关截图如下: