2016-07-16 95 views
0

我繼續有問題與我的網絡應用程序部署在heroku上 - 返回的錯誤是無法加載資源錯誤404。它完美運行在我的本地節點服務器上,但不會加載css或js文件時推到heroku。我所看到的關於Ruby,但有關節點數量有限的幾個答案 - 這裏是我的服務器代碼:heroku部署與節點服務器

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

// set the port of our application 
// process.env.PORT lets the port be set by Heroku 
var port = process.env.PORT || 8080; 

// set the view engine to ejs 
app.set('view engine', 'ejs'); 

// make express look in the public directory for assets (css/js/img) 
app.use(express.static(__dirname + '/public')); 

// set the home page route 
app.get('/', function(req, res) { 

    // ejs render automatically looks in the views folder 
    res.render('index'); 
}); 

app.listen(port, function() { 
    console.log('Our app is running on http://localhost:' + port); 
}); 

非常感謝!

+0

那麼它不會加載你的index.ejs文件?或者它不會加載CSS或JS? –

+0

問題公共目錄路徑錯誤,請嘗試調試該值,您可以使用var path = require(「path」); express.static(path.resolve(__ dirname,「/ public」))。 – cshion

+0

它不會加載CSS或JS。最初我有index.html,但閱讀了一些關於嘗試將其更改爲ejs – JamesHandshoe

回答

1

如果您的JS和CSS文件位於公共目錄中,則需要修改代碼以反映該問題。問題在於,當heroku實際處於/ public狀態時,它正在根目錄中查找這些文件。

要添加/公衆對請求的URL,你需要這條線

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

改變這種

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

您可以在related post閱讀更多關於這一點。

+0

的地方。而且,在未來,執行'heroku logs -tail'會爲您提供詳細的(實時)錯誤日誌。這應該有助於你調試^^ – mdegges

+0

我添加了這個改變,但仍然沒有在heroku服務器上。 我的文件結構是這樣的 沉思應用 -public -views 的index.html index.js 的package.json Procfile https://meditate-app.herokuapp.com/那就是鏈接,如果它會幫助看看發生了什麼。我更喜歡用節點編碼,這是第一次嘗試推向heroku,所以我不是100%的erros日誌的意思..謝謝所有的幫助 – JamesHandshoe