我正在使用当前版本的 Api Platform https://github.com/api-platform/api-platform/releases/tag/v3.0.10 并使用 docker compose 运行它。
我想为整个 API 添加前缀“/api”。
但是一旦我给 api 添加前缀,管理面板中的构建就会出现错误。
我添加了:前缀:'/api'
api_platform:
resource: .
type: api_platform
prefix: '/api'
到我的 config/api_platform.yaml
我还在我的 Caddyfile 中添加了“/api*”
@pwa expression `(
header({'Accept': '*text/html*'})
&& !path(
'/api*' ,'/docs*', '/graphql*', '/bundles*', '/contexts*', '/_profiler*', '/_wdt*',
'*.json*', '*.html', '*.csv', '*.yml', '*.yaml', '*.xml'
)
)
|| path('/favicon.ico', '/manifest.json', '/robots.txt', '/_next*', '/sitemap*')`
现在我可以在 https://localhost/api/endpoint 上查询 api,并且可以在 https://localhost/api/docs 上查看文档。
但是当我尝试在 https://localhost/admin 上使用 admin 中的构建时,它会抛出错误。 如果我查看控制台,我会看到:
在此之后出现了更多错误,但我认为它们只是上述结果的结果。
在网络选项卡中还有很多对“https://localhost/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false.....”的 404 调用
有人可以告诉我我错过了什么吗?
提前谢谢您。
编辑: 我猜 pwa 不知道改变的路径。
所以我尝试将 docker-compose.yaml 中的环境变量 NEXT_PUBLIC_ENTRYPOINT 从 http://caddy 设置为 http:caddy/api
pwa:
build:
context: ./pwa
target: prod
environment:
NEXT_PUBLIC_ENTRYPOINT: http://caddy/api
但这也不起作用。
好吧,我成功了,但感觉不太好。
我更改了我的 pwa/pages/admin/index.tsx
setDynamicAdmin(<HydraAdmin entrypoint={window.origin + '/api'}></HydraAdmin>);
但我认为必须通过 docker yaml 设置提供更清晰的选项。 所以如果你知道的话请告诉我。