将CSS和JS等静态文件加载到ejs

时间:2017-06-05 16:52:08

标签: javascript html node.js express ejs

我正在尝试将一些静态文件加载到ejs(我能够加载HTML文件,但不能在ejs文件中加载)。不只是静态文件。 我甚至无法加载CDN文件!有人可以帮助我了解我哪里出错吗? 这是目录结构: Directory-structure

这是我的server.js:

 <div class="search-box">
     <input type="text" id="searchBox" autocomplete="off" placeholder="Search dealer..." />
     <div class="result"></div>
 </div>

这是我的index.ejs:

const express=require('express');
var app=express();
const MongoClient = require('mongodb').MongoClient
app.set('view engine', 'ejs')
var path = require('path')
app.use('/static',express.static(__dirname + '/public'));

app.get('/',function(req,res){
 db.collection('testCollection').find().toArray((err, result) => {
    if (err) return console.log(err)
    console.log(result)
    res.render('index.ejs', {testCollection: result})
  })
});

在控制台中我只能看到加载了index.ejs文件:Console

2 个答案:

答案 0 :(得分:0)

<link rel="stylesheet" href="/main.css"/>

<script src="/main.js"></script>

以上是你应该如何在index.ejs中调用你的文件。您将这样做是因为您在server.js文件中声明了 app.use('/static',express.static(__dirname + '/public'));

答案 1 :(得分:0)

我认为如果你添加:

app.set('views',__dirname);//---> before setting ejs as the View Engine ... (this is for the views folder that you have there but your view is in your current working directory hence __dirname)
var index = require('./index');
app.use('/', index);//---> after declaring static folder...

到您的代码节点可能知道文件的位置......

我建议您将index.ejs移至views文件夹,然后设置:

app.set('views', path.join(__dirname, 'views'));

而不是:

app.set('views',__dirname);