Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与nginx一起使用webpack dev server_Javascript_Php_Nginx_Webpack - Fatal编程技术网

Javascript 与nginx一起使用webpack dev server

Javascript 与nginx一起使用webpack dev server,javascript,php,nginx,webpack,Javascript,Php,Nginx,Webpack,我正在尝试在react前端启用HMR,该前端也使用nginx/php-fpm作为后端。我读了一些关于stackoverflow的文章和问题,但我仍然无法让它发挥作用 首先,如果我理解正确,它应该是这样工作的: upstream backend { server app:9000; } server { root /var/www/emailApp/public; location / { proxy_http_ver

我正在尝试在react前端启用HMR,该前端也使用nginx/php-fpm作为后端。我读了一些关于stackoverflow的文章和问题,但我仍然无法让它发挥作用

首先,如果我理解正确,它应该是这样工作的:

upstream backend {
        server app:9000;
}
server {
        root /var/www/emailApp/public;
        location / {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass http://localhost:8080;
        }

        location ~ ^\/api\/.+$ {
                fastcgi_pass backend;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_param DOCUMENT_ROOT $realpath_root;
        }
}
1.我将docker nginx容器(80)映射到端口8080

  • 我向localhost:8080发出请求,然后它将请求传递到docker容器中,并发送给侦听端口80的nginx
  • 之后,我应该有两个选项,如果我想向后端发出请求,这只是API,那么URI中带有/API的所有内容都将重定向到php fpm,否则所有其他内容都将重定向到webpack dev服务器
  • 目前我的nginx配置如下:

    upstream backend {
            server app:9000;
    }
    server {
            root /var/www/emailApp/public;
            location / {
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                    proxy_pass http://localhost:8080;
            }
    
            location ~ ^\/api\/.+$ {
                    fastcgi_pass backend;
                    fastcgi_split_path_info ^(.+\.php)(/.*)$;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $request_filename;
                    fastcgi_param DOCUMENT_ROOT $realpath_root;
            }
    }
    
    我不确定这是否正确,但如果它与“/”匹配,则应尝试将其传递到端口8080,如果它与/api/匹配,则应将其传递到php后端

    这是我的网页配置

        entry: './assets/index.jsx',
        output: {
            filename: 'main.js',
            publicPath: "http://localhost:8080/public/"
        },
    
        devServer: {
            contentBase: path.join(__dirname, 'public'),
            host: '0.0.0.0',
            compress: true,
            port: 8080
        },
    
    我主要是通过教程来做的,但我不认为我理解它。因为现在我调用index.php,它调用返回模板的控制器,该模板包含对公共文件夹中main.js的引用。但看了文献后,我还是不太明白。devServer部分可能会指定将侦听0.0.0.0:8080的服务器,但如果我没有弄错的话,我需要更改项目的结构,这样我就有了index.html文件,该文件将包括公用文件夹中的js文件,对吗