Docker 码头化环境中的Nuxt SSR水合作用

Docker 码头化环境中的Nuxt SSR水合作用,docker,vue.js,docker-compose,axios,nuxt.js,Docker,Vue.js,Docker Compose,Axios,Nuxt.js,我有一个带SSR的Nuxt.js应用程序。它使用我在Django中构建的API 在我的开发环境中,一切正常。但在停靠设置中,我遇到了以下问题: Axios安装程序使用baseURL参数来前置http://backend:8000/api,其中backend是docker compose文件中的服务名称 当我直接访问一个URL,并且页面在服务器端呈现时,这种方法可以很好地工作。但是,当我点击任何链接时,页面显示在客户端,Axios从http://backend:8000,这显然是不正确的,因为它应

我有一个带SSR的Nuxt.js应用程序。它使用我在Django中构建的API

在我的开发环境中,一切正常。但在停靠设置中,我遇到了以下问题:

Axios安装程序使用
baseURL
参数来前置
http://backend:8000/api
,其中
backend
docker compose
文件中的服务名称

当我直接访问一个URL,并且页面在服务器端呈现时,这种方法可以很好地工作。但是,当我点击任何链接时,页面显示在客户端,Axios从
http://backend:8000
,这显然是不正确的,因为它应该使用我网站的域名


关于如何解决这个问题,您有什么想法吗?

您可以动态配置axios,具体取决于这样的环境(客户端或服务器)

此外,Django API需要一个外部域名

config.nuxt.js

export default {
  // ...

  // Axios module configuration: https://go.nuxtjs.dev/config-axios
  axios: {
    baseURL: process.browser ? 'https://api.external-domain.com/api' : 'http://backend-container:8000'
  },

  // ...
}