代码之家  ›  专栏  ›  技术社区  ›  thelearner

表示static()不工作

  •  3
  • thelearner  · 技术社区  · 7 年前

    我有以下服务器代码:

    var express = require('express');
    var webpack = require('webpack');
    var app = express();
    
    //app.use(express.static(path.join(__dirname, "public")));
    app.use("/", express.static(__dirname + "/public"));
    //both not working. I have tried multiple ways....
    
    app.get("/",function (req, res){
    res.sendFile(__dirname + "/public/index/index.html")
    });
    
    
    app.listen(3000);
    

    module.exports = {
    entry: './app/index/index.js',
    output: {
        path: path.resolve(__dirname, 'public/index'),
        publicPath: '/public/index',
        filename: 'index_bundle.js'
    },
    module: {
        rules: [
            { test: /\.(js)$/, use: 'babel-loader' },
            { test: /\.css$/, use: [ 'style-loader', 'css-loader' ]}
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: 'app/index/index.html'
        })
    ]};
    

          -public
            -index
              -index_bundle.js
    

    当我尝试加载我的index\u bundle js时,出现以下错误:

    获取 http://localhost:3000/public/index/index_bundle.js 404(未找到)

    我无法修复它,而且我在网上找不到解决方案。

    1 回复  |  直到 6 年前
        1
  •  9
  •   user2065736 user2065736    7 年前

    改变

    app.use("/", express.static(__dirname + "/public"));
    

    app.use("/", express.static(__dirname));
    

    您可以使用 DEBUG=* node <your-server-file>.js 调试与express相关的问题。

    var path = require('path');
    var express = require('express');
    var app = express();
    
    app.use("/public", express.static(path.resolve(__dirname, 'public')));
    
    app.get("/",function (req, res) {
      res.sendFile(__dirname + "/public/index/index.html")
    });
    
    
    app.listen(3000);