2017-03-16 2 views
0

ich diesen Fehler in Heroku GET https://my-app.herokuapp.com/index.js 404 (Not Found)Heroku kann meine index.js Datei

mein procfile hat dies darin finden: web: npm start

in meinem package.json Dann habe ich "start": "node ./app/index.js"

meine App-Ordner auf root-Ebene enthält ein index.js das enthält:

var express = require('express'); 
var app = express(); 

app.use('/', express.static('public')); 

app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/index.html'); 
}); 

app.listen(process.env.PORT || 8080); 

und meine webpack.config.js Datei enthält:

var path = require('path'); 
const webpack = require('webpack') 

module.exports = { 
entry: './main.js', 

output: { 
    path: path.resolve(__dirname, 'public'), 
    filename: 'index.js' 
}, 

module: { 
    loaders: [ 
    { 
     test: /\.js$/, 
     exclude: /node_modules/, 
     loader: 'babel', 
     query: { 
     presets: ['es2015', 'react', 'stage-2'] 
     } 
    }, 
    { 
     test: /\.scss$/, 
     loaders: ["style-loader", "css-loader", "sass-loader"] 
     } 
    ] 
} 
} 

Vielleicht muss ich es an meinem public/index.js Datei zeigen, aber wenn ich das tat es immer noch hat es nicht erkennen.

irgendwelche Ideen?

Antwort

0

Dies ist ein Missverständnis, wie Knoten und oder Server im Allgemeinen arbeiten. Sie sollten in der Lage sein, zu GET https://my-app.herokuapp.com/ zu gehen, und es wird Ihnen die index.html Datei zurückgeben, die sich in Ihrem Öffentlichen Ordner befindet. Der Aufruf des Knotens zum Starten mit "start": "node ./app/index.js" bedeutet einfach, dass diese Datei ausgeführt wird, um den Server zu starten. Der Server als lauscht auf den Strecken mit Ihnen definieren:

app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/index.html'); 
}); 

Dies wird auf dem Weg hören https://my-app.herokuapp.com/

Wenn Sie https://my-app.herokuapp.com/anotherroute hören wollte, würden Sie das zu ändern, bevor Sie:

app.get('/anotherroute', function(req, res) { 
    res.sendFile(__dirname + '/index.html'); 
}); 

Und seit Sie app.use('/', express.static('public')); verwendet haben, werden alle Dateien, die Ihrer Route entsprechen, automatisch geschaltet. Wenn Sie eine Datei in Ihrem Verzeichnis public wie apple.jpg haben, können Sie sie mit https://my-app.herokuapp.com/apple.jpg

abrufen
Verwandte Themen