Javascript 网页:express can';找不到包错误404

Javascript 网页:express can';找不到包错误404,javascript,reactjs,express,webpack,isomorphic-javascript,Javascript,Reactjs,Express,Webpack,Isomorphic Javascript,我知道这个问题被问了很多,但我已经尝试了所有的方法,但没有任何效果! 事情是这样的:我正在为Practice witch开发一个同构React应用程序,这是2017年本教程的一个大副本,我试图更新它 她的大部分代码现在已被弃用,我重新编码了。 重要的一点是,我使用webpack来编译应用程序的所有文件夹,包括index.js文件,而不是babel来编译所有文件夹,只使用webpack来编译index.js文件,就像她那样 问题是我通过一个js函数renderFullPage.js expo

我知道这个问题被问了很多,但我已经尝试了所有的方法,但没有任何效果! 事情是这样的:我正在为Practice witch开发一个同构React应用程序,这是2017年本教程的一个大副本,我试图更新它

她的大部分代码现在已被弃用,我重新编码了。 重要的一点是,我使用webpack来编译应用程序的所有文件夹,包括index.js文件,而不是babel来编译所有文件夹,只使用webpack来编译index.js文件,就像她那样

问题是我通过一个js函数renderFullPage.js

export default function renderFullPage(html, preloadedState) 
    return `
    <!DOCTYPE html>

    <html lang="fr">
        
        <head>
            <meta charset="UTF-8"/>
            <title> Isomorphic Router React Mongoose App initialised with data</title>
        </head>
    
        <body>
            
            <div id="root">
                ${html}
            </div>
            <script>
                window.__PRELOADED_STATE__ = ${JSON.stringify(preloadedState).replace(/</g, '\\u003c')}
            </script>
            <script type="application/javascript" src="bundle-app.js"></script>
            
        </body>
    </html>
    
    `;
}

这里还有webpack.config.js:

{
  "name": "ssr-react-router-mongoose-isomorphic-app",
  "version": "1.0.0",
  "description": "isomorpic app",
  "main": "./app/index.js",
  "scripts": {
    "build:server": "babel ./app/server -d build/server",
    "build:watch:server": "babel ./app/server -d build/server --watch",
    "build:client": "webpack --mode development --config webpack.config.js/  --progress ",
    "build:watch:client": "webpack-dev-server -d --hot --config webpack.config.js --watch",
    "build:prod": "npm run build:server && npm run build:client",
    "start": "npm run build:prod && NODE_ENV=production node ./build/server/index.js",
    "start:dev": "parallelshell \"npm run build:watch:client\" \"nodemon ./build/server/bundle-server.js\" ",
    "start:dev:client": "webpack-dev-server"
  },
  "author": "Rando Mathias",
  "license": "ISC",
  "dependencies": {
    "babel-polyfill": "^6.26.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mongoose": "^5.10.6",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.2.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.11.6",
    "@babel/core": "^7.11.6",
    "@babel/preset-env": "^7.11.5",
    "@babel/preset-react": "^7.10.4",
    "babel-loader": "^8.1.0",
    "file-loader": "^6.1.0",
    "html-webpack-plugin": "^4.5.0",
    "nodemon": "^2.0.4",
    "parallelshell": "^3.0.1",
    "webpack": "^4.44.2",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.0"
  }
}

我想从build文件夹加载bundle-app.js
提前感谢您的帮助

您可以从项目的根目录开始脚本

"start": "npm run build:prod && NODE_ENV=production node ./build/server/index.js",
并尝试通过如下设置pass来访问静态文件

const assets = express.static(path.join(__dirname,'../'));
const assets = express.static(path.join('./build'));
但这里的问题是路径应该相对于脚本开始文件夹。
在您的情况下,它是您执行
npm start
命令的项目根文件夹

您需要更改静态文件路径,将其设置为相对于项目根而不是服务器包

如果我是对的,它将如下

const assets = express.static(path.join(__dirname,'../'));
const assets = express.static(path.join('./build'));

您好,谢谢您的回复,要创建项目,我使用以下命令。npm运行构建:客户端,然后npm运行开始:dev