首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API/http-角通用请求在Docker图像中抛出"404 not“

API/http-角通用请求在Docker图像中抛出"404 not“
EN

Stack Overflow用户
提问于 2021-09-01 07:48:19
回答 1查看 245关注 0票数 0

我有一个(外部开发)角应用程序,其中也包括角通用。在这个项目中已经构建了两个不同的目标/ API域(称为api-url-1和api-url-2),我添加了第三个目标/api域(称为new url)。因此,我补充说:

proxy.config.json:

代码语言:javascript
复制
{
"/api-1": {
    "target": "https://api-url-1",
    "secure": false,
    "changeOrigin": true
  },
  "/api-2": {
    "target":  "https://api-url-2",
    "secure": false,
    "changeOrigin": true
  },
  "/new-api": {
    "target":  "https://new-api-url",
    "secure": false,
    "logLevel": "debug",
    "pathRewrite": { "^/new-api":  ""},
    "changeOrigin": true
  }
}

universal.interceptor.tsserver.ts中,我添加了与现有API与自定义名称相同的代码行,从而使“localhost:4200/new/xyz”变为“new/xyz”。

当我在浏览器中的localhost上运行带有npm start的run时,这已经起作用了--那里一切都很好。

但是现在我想从它中构建一个Docker映像和容器--在那里,新的API不起作用--其他API也是这样。

我用npm run build:ssr构建了这个项目(也尝试了build:ssr-deploy和baseUrl ./)

Dockerfile

代码语言:javascript
复制
FROM node:14.15.5-alpine3.13

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package*.json /usr/src/app/
COPY proxy.conf.json /usr/src/app/
COPY ./node_modules /usr/src/app/node_modules
COPY ./dist /usr/src/app/dist

ENV PORT=80
EXPOSE $PORT

CMD [ "npm", "run", "serve:ssr" ]

当我构建映像并运行容器时,最初的两个api可以工作,所以当我在浏览器中检查网络时,请求URL使用状态200表示"localhost:1234/api-1/xyz“。

但是对于我添加的API,它写着“localhost:1234/new/abc”,状态404没有找到。当我在一个新的浏览器选项卡中测试请求时,使用的是真正的URL而不是"localhost“,这是有效的,在构建过程中一定是缺少了什么吗?不幸的是,我还没有在文件中找到答案。如果有人有主意,我很高兴,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-02 08:21:30

我发现了错误:显然我在proxy.conf.json中为新的-api定义了一个"pathRewrite“,但是我忘了在server.ts中添加相同的内容,因为我不知道这两个文件不一起工作。

server.ts更正:

代码语言:javascript
复制
  server.use('/api-1', createProxyMiddleware({target: proxyTarget, changeOrigin: true, logLevel: 'info'}));
  server.use('/api-2', createProxyMiddleware({target: proxyCmsTarget, changeOrigin: true, logLevel: 'info'}));
  server.use('/new-api', createProxyMiddleware({target: proxyTargetGls, changeOrigin: true, logLevel: 'debug', pathRewrite: { '^/new-api':  ''}}));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69009762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档