代码之家  ›  专栏  ›  技术社区  ›  Kano Dekou Billy Brown

NextJ的环境变量在开发和生产服务器上不可用

  •  0
  • Kano Dekou Billy Brown  · 技术社区  · 3 年前

    我知道以前有人问过这个问题,但没有一个答案能解决我的问题。

    我正在尝试使用redux为一个网站设置身份验证,我有一个localServer,在投入生产之前我开发并测试了它,azure web服务用于部署 在Localhost上:3000和一个产品

    在生产中,添加了环境变量,但基本url被生产的基本url替换,即 https://api.example.com 被example.com取代,example.com是生产服务器的基本URL

    这就是我将环境变量添加到.env.local文件中的方式,

    API_CLIENT_SECRET='secret here'
    CLIENT_TYPE=confidential
    API_CLIENT_ID='id here'
    API_BASE_URL='https:api.example.com'
    

    这就是我在#authslice.js中的client_secret和客户端id的方式

    import { apiSlice } from "../services/apiSlice";
    
    const clientId = process.env.API_CLIENT_ID;
    const clientSecret = process.env.API_CLIENT_SECRET;
    const authApiSlice = apiSlice.injectEndpoints({
      endpoints: (builder) => ({
        retrieveUser: builder.query({
          query: () => "auth/userinfo/",
        }),
    

    这就是我在一个名为apislice.js的文件中调用baseurl的方式

    const baseQuery = fetchBaseQuery({
      baseUrl: `${process.env.API_BASE_URL}/`,
      credentials: "include",
    });
    

    我试着在next.config.js中调用它们,如下所示,但它们在生产中不可用

    /** @type {import('next').NextConfig} */
    const nextConfig = {
      experimental: {
        appDir: true,
      },
      env: {
        API_BASE_URL: process.env.API_BASE_URL,
        API_CLIENT_ID: process.env.API_CLIENT_ID,
        API_CLIENT_SECRET: process.env.API_CLIENT_SECRET,
      },
    };
    
    module.exports = nextConfig;
    
    0 回复  |  直到 3 年前
    推荐文章