0
我在Heroku上啓動了一個新的nodejs項目。代碼工作在我的機器就好了,但是當我在Heroku上運行它,我得到這個消息:Heroku:無法在視圖目錄「/ app/server/views」中查找視圖「index.jade」
未能在views目錄查找視圖「index.jade」「/應用/服務器/視圖」
知道我做了目錄「/ app/server/views」中的「index.jade」文件。
操作系統:Windows 10
Server.js文件
var express = require('express');
var path = require ('path');
var connectionString = "mongodb://localhost:27017/TravelWithMe";
stylus = require ('stylus');
logger = require('morgan');
bodyParser = require('body-parser');
mongoose = require('mongoose');
var app = express();
function compile (str,path)
{
return stylus(str).set('filename',path);
}
app.set('views',path.join(__dirname ,'server/views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(stylus.middleware(
{
src: path.join(__dirname ,'public'),
compile: compile
}
));
app.use(express.static(path.join(__dirname ,'public')));
mongoose.connect(connectionString);
var db = mongoose.connection;
db.on('error',console.error.bind(console,'connection error ...'));
db.once('open',function callback() {
console.log('TWM Db opened')
});
app.get('/partials/:partialPath', function(req, res) {
res.render('partials/' + req.params.partialPath);
});
app.get('*',function (req,resp){
resp.render('index.jade',{MongoMessage : MongoMessage});
});
var port = process.env.PORT || 3030;
app.listen(port);
Server.js位於應用程序的最頂部目錄中嗎?此外,作爲快速的完整性檢查(除了這是最佳實踐),將app.set('views',path.join(__ dirname,'server/views'));'更改爲'app.set('views ',path.join(__ dirname,'server','views'));'看看它是否能解決你的問題 –
@LanceWhatley是的,它位於頂層目錄。我試過了path.join ..仍然是同樣的問題.. –