管理面板自定义:主机、端口和路径配置

页面摘要: 在 config/admin.[ts|js] 文件中配置 Strapi 管理面板的主机、端口和 URL 路径,以更改其默认位于 /admin 的访问位置。

默认情况下,Strapi 的管理面板通过 http://localhost:1337/admin 暴露。出于安全考虑,可以更新主机、端口和路径。

仅更新管理面板的路径

除非你选择将 Strapi 的后端服务器和管理面板服务器部署在不同的服务器上(参见 部署),默认情况下:

  • Strapi 的后端服务器和管理面板服务器都运行在相同的主机和端口上,即 http://localhost:1337/。
  • 管理面板可通过 /admin 路径访问,而后端服务器可通过 /api 路径访问。

要让管理面板可通过其他路径访问(例如 http://localhost:1337/dashboard),请在管理面板配置文件中按如下方式定义或更新 url 属性:

module.exports = ({ env }) => ({
  // … other configuration properties
  url: "/dashboard",
});
Cookie 路径必须匹配

自 Strapi 5.51 起,管理员身份验证 cookie 路径默认为 /admin,与 url 无关。更改 url 时,请同时将 auth.cookie.path 设置为相同值。否则管理面板无法读取自己的身份验证 cookie:登录请求成功,但其后的每个请求都会被拒绝,面板会在没有错误提示的情况下返回登录页。

module.exports = ({ env }) => ({
  url: "/dashboard",
  auth: {
    cookie: {
      path: "/dashboard", // must match url
    },
  },
});

更改 auth.cookie.path 后,在启动 Strapi 前重新构建管理面板,因为该值会在构建时内联到管理面板 bundle 中。

由于默认情况下后端服务器和管理面板服务器运行在相同的主机和端口上,只要你在服务器配置文件中保留了 host 和 port 属性值不变(如下所示),仅更新 config/admin.[ts|js] 文件即可生效:

JavaScript

module.exports = ({ env }) => ({
  host: env("HOST", "0.0.0.0"),
  port: env.int("PORT", 1337),
});

TypeScript

export default ({ env }) => ({
  host: env("HOST", "0.0.0.0"),
  port: env.int("PORT", 1337),
});

更新管理面板的主机和端口

如果 Strapi 的管理面板和后端服务器没有托管在同一台服务器上(参见 部署),则需要更新管理面板的主机和端口。

这需要在管理面板配置文件中进行,例如要将管理面板托管在 my-host.com:3000,应更新如下属性:

JavaScript

module.exports = ({ env }) => ({
  host: "my-host.com",
  port: 3000,
  // Additionally you can define another path instead of the default /admin one 👇
  // url: '/dashboard' 
});

TypeScript

export default ({ env }) => ({
  host: "my-host.com",
  port: 3000,
  // Additionally you can define another path instead of the default /admin one 👇
  // url: '/dashboard'
});
其他管理面板配置

/config/admin.[ts|js] 文件可用于配置许多其他方面。详见管理面板配置文档。

位于反向代理之后

当管理面板的公开来源(域名、主机或端口)与 API 不同时,请相应地设置 host/port,并确保你的代理转发了相应的请求头(例如 X-Forwarded-*)。如果管理面板可通过不同的来源访问,建议显式配置该来源。