把手/节点/ Express无法加载文件

所以我正在开发基本的CRUD操作的Node / Express webapp,而且我很难在项目中实现Handlebars。

当我尝试使用句柄时,我的.hbs(以前的.html)页面的样式表都没有加载。

这是文件树:

在这里输入图像说明

这是错误: 在这里输入图像说明

这里是一个脚本导入语句的例子

index.hbs

<!-- Bootstrap --> <link href="../vendors/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> 

最后这里是server.js文件

 var express = require('express'), bodyParser = require('body-parser'), path = require('path'), mysql = require('mysql'), dbconfig = require('./config/database'), exphbs = require('express-handlebars'); var connection = mysql.createConnection(dbconfig.connection) connection.query('USE ' + dbconfig.database); var app = express(); //Body Parser Middleware app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); //Set static path //app.use(express.static(path.join(__dirname, 'public'))); //app.use(express.static(__dirname + '/public')); //app.set('views', __dirname + '/views'); //app.use('/views', express.static(path.join(__dirname, '/views'))); app.engine('hbs', exphbs({defaultLayout: false})); app.set('view engine', 'hbs'); app.set(express.static(__dirname + '/public')); //app.use('/views/vendors', express.static(path.join(__dirname, '/views/vendors'))); //app.use(express.static(__dirname + '/public/vendors')); app.get('/', function(req, res) { res.render('index'); connection.query("SELECT * FROM Student", function(err, rows){ console.log(rows); }); }); app.listen(80, function() { console.log('we are live on 80'); }); 

我尝试过使用各种静态path从我发现的其他东西,但没有得到任何他们的工作。

任何帮助将不胜感激!!

谢谢!

通过在我的app.get('/'…上方添加以下行来解决我的问题

 app.use("/vendors",express.static(__dirname + "/vendors")); app.use("/build",express.static(__dirname + "/build")); app.use("/images",express.static(__dirname + "/images")); app.get('/', function(req, res) { 

我认为这是可能的问题是在车把configuration,请看看这样的configuration:

 app.engine('.hbs',exphbs({ defaultLayout:'layouts', layoutsDir:path.join(app.get('views'),'layouts'), partialsDir:path.join(app.get('views'),'partials'), extname:'.hbs', helpers: helpers })); app.set('view engine','hbs'); 

也许在你的这将是:

 app.engine('hbs', exphbs({defaultLayout: false, extname:'.hbs',})); 

如果你是使用app.set(express.static(__dirname + '/public'));

试着把你的样式放在公共文件夹中,例如bootstrap文件夹,然后你只需要这样调用它:

 <link href="/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">