当前位置: 首页 > 知识库问答 >
问题:

“加载资源失败:服务器响应状态为404”express docker

凌声
2023-03-14

我在浏览器中收到错误消息“加载资源失败:服务器响应状态为404”,我正在使用Node/Express、Mongo数据库和Docker。没有Docker一切正常。

文件夹结构:

  • 后端
    • 服务器
      • 服务器。js公司
      • src公司
        • 索引。html

        server.js

        app.use('/', express.static(__dirname + '../../dist/'));
        
        app.get('/gallery', (req, res) => {
          Gallery.find({}, {name: 1, path: 1, _id: 0, image: 1}).then(
            gallery => {
              res.json({gallery});
            },
            e => {
              res
                .status(500)
                .send(e)
                .send('Undefined error');
            },
          );
        });

        指数html

        <!DOCTYPE html>
        <html lang="en">
        
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        
            <title>Gallery</title>
            <base href="/">
            <link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
        
        
        </head>
        
        <body>
            <div id="root"></div>
        
        
        
        
            <script type="text/javascript" src="dist/frontend-output.js"></script>
        </body>
        
        </html>
        const frontend = {
          resolve: {
            modules: [path.resolve(__dirname, 'frontend'), 'node_modules'],
          },
          mode: 'development',
          entry: './frontend/js/index.js',
        
          output: {
            path: path.resolve(__dirname, '/dist/'),
            publicPath: '/',
            filename: 'frontend-output.js',
          },
        
          module: {
            rules: [
              {
                test: /\.(js)$/,
                exclude: /node_modules/,
                use: {
                  loader: 'babel-loader',
                  options: {
                    presets: ['env', 'stage-0', 'react'],
                  },
                },
              },
              {test: /\.css$/, use: ['style-loader', 'css-loader']},
              {test: /\.(jpe?g|png|gif|svg)$/i, use: ['url-loader', 'file-loader']},
              {
                test: /\.(jpe?g|png|ttf|eot|gif|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
                use: 'base64-inline-loader?limit=1000&name=[name].[ext]',
              },
            ],
          },
        
          plugins: [
            new HtmlWebpackPlugin({
              publicPath: '/',
              template: './frontend/src/index.html',
            }),
          ],
          devServer: {
            historyApiFallback: true,
          },
        };

        包裹json{脚本}

        "server": "node ./backend/server/server.js",
        "webpack": " webpack-dev-server   --host 0.0.0.0  --disable-host-check",
        "start": "run-p webpack server " /* run-p is part of npm-run-all package*/
        

        文档文件

        FROM node:latest
        WORKDIR /app
        COPY . /app
        EXPOSE 3000
        

        docker编写。yml公司

        version: "3"
        services:
          app:
            container_name: projectX
            image: docker-node-express-mongoapp
            restart: always
            build: .
            command: npm run start
            ports:
              - "3000:3000"
        
        
          mongo:
            container_name: mongo
            image: mongo
            command: ["mongod", "--bind_ip_all"]
            volumes: 
               - /app:/data/configdb
               - mongo-data:/data/db
            ports:
               - "27017:27017"
        
        volumes:
            mongo-data:

        如果我在浏览器中输入“192.168.99.100:3000/gallery”,我只有来自数据库的数据(json)响应,但没有任何html/css代码。

        当我尝试手动发送索引时。html到浏览器,包括:

        app.get('/', function(request, response) {
            response.sendFile(path.resolve(__dirname + '../../../frontend/src/index.html'),
          );
        });
        

        我有问题与负载frontend-output.js.(404未找到)

        非常感谢您的帮助:)

共有1个答案

鲜于俊侠
2023-03-14

问题解决了!!!到dockerfile添加:

  • 暴露3000
  • 暴露8080

docker-compose.yml添加:

  • 端口:

并在webpack.config.js中为devServer设置端口

  • 端口:8080
 类似资料:
  • 我正在运行一个spring MVC应用程序,下面是我的项目结构。 在我的中,我尝试在header部分加载js。 但我在浏览器中发现了以下错误。 在我的spring文件中,我添加了 有人能指出我犯的错误吗?

  • 我正在学习Lynda关于Javascript和Ajax以及hungup的教程,主题是“使用同步XHR请求”。 html文件基本上是: javascript文件为: data.txt文件上有“Hello World”。 项目文件的路径为 当我打开wampserver上的localhost并执行inspect元素时,我得到了上面的错误:“未能加载资源:服务器响应状态为404(not found)” 不

  • 我有一个带有ASP. NET Core Web API后端和Angulal-13前端的项目。 Web API有这样一个endpoint:https://localhost:5001/api/v1/admin/teachers 登录后,当我将生成的不记名令牌粘贴到POSTMAN时,它会给出这样的结果: 从Angular前端,我有这些代码。 角度 teacher.service: 教师组件: 我本以为

  • 服务器js公司 应用程序。js公司 注册处理程序代码 当我试图注册一个用户时,我遇到了错误400。加载资源失败:服务器响应状态为400(错误请求),我已附加我的注册表。js文件寄存器。js:26个职位https://warm-earth-96837.herokuapp.com/register400(错误请求)寄存器。onSubmitSignIn@寄存器。js:26 400错误请求错误是一个HTT

  • 我有angular 6应用程序在我的本地机器上,一切都按照我想要的完美工作,完成项目后我将其部署到heroku,当我运行我的应用程序时,这里是指向heroku中应用程序的链接:测试应用程序 正如您所看到的,我在控制台浏览器中遇到以下错误 加载资源失败:服务器响应状态为404(未找到) 这是我在github中的应用程序结构 github中的应用程序回购 为了快速参考,这里是服务器。js 这是hero

  • 我完全新的ReactJS。 我在YouTube遵循这个教程,遵循每个步骤。 直到我发现我的代码出现了这样的错误 因为我刚开始编程ReactJS,我仍然不明白该做什么,以及如何修复这个问题 本教程展示了如何构建一个简单的CRUD应用程序,内置于ReactJS和PostgreSQL 这里我提供我的应用程序。js代码 这是我的server.js代码: 我该怎么办?任何建议都能帮我解决这个问题 非常感谢。