2017-08-06 7 views
0

まず動作していない、私はこれを成し遂げるためにそれを試してみましたし、私はが答えを見つけるために(stackoverflowの含む)インターネット上のすべてのサイトを検索しました。 2時間後、私はstackoverflowの助けを求めています。Express.static()は、すべての

私は、次のしているサーバコード:

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); 

のWebPACKのコンフィグ

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' 
    }) 
]}; 

-

Following directory structure: 
     -public 
     -index 
      -index_bundle.js 

私はindex_bundle JSをロードしようとすると、私は次のエラーを取得する

http://localhost:3000/public/index/index_bundle.jsをGET 404(見つからない)

私はあなたが私の「個人軍」ではないことを知っていますが、私はほぼ2時間以上それを検索しようとしています。私はそれを修正することはできませんと私はWeb上で解決策が見つかりませんでした。

ありがとうございました。

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

+0

が常駐するindex_bundle.jsするインデックスという名前のフォルダがありますか? –

答えて

2

変更

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

あなたは、このような表現に関連する問題をデバッグするためにDEBUG=* node <your-server-file>.jsを使用することができます。

より良い、より安全なソリューション:

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); 
+2

プロダクトコード内で_any_ファイルを検索できるので、プロダクションコードではそれはお勧めできません。 'app.use( '/ public'、express.static(__ dirname + '/ public'))'を使うのが良いです。 – robertklep

+1

統計情報を提供するエクスプレスはお勧めできません。私はちょうど提示されたコードの問題を指摘しています。 –

+1

確かですが、その場合OPには、あなたのソリューションには、Expressを使用して本番環境の静的コンテンツを提供してはならないというセキュリティ上の問題があることを伝えてください。 – robertklep

関連する問題