设置表达js静态文件并将它们包含在模板文件中

时间:2017-07-05 11:12:35

标签: node.js express

我已经在app.js中将我的静态文件夹设置为public(在我的app文件夹的根目录中) 但是在链接css文件时仍然是把手布局文件,找不到公用文件夹中的文件。

// app.js code:
// init app
var app = express();

// view engine
app.set('views',path.join(__dirname,'views'));
app.set('view engine','handlebars');
app.engine('handlebars',expressHandlebars({defaultLayout:'layout'}));

// middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(cookieParser());

// set static folder
app.set(express.static(path.join(__dirname,'public')));



handlebars layout file:
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>

1 个答案:

答案 0 :(得分:3)

首先,您必须在评论中使用robertklep中提到的绝对路径。

现在问题是,您使用app.set来解决问题,您必须使用.use方法而不是.set

现在关于如何构建目录,我建议指定一个像'/ public'这样的目录路径来访问公共文件。可以这样做:

//app.use not .set
app.use('/public', express.static(path.join(__dirname,'public')));
//see the first argument in above line it assigns which directory path is used to access the public file through URL

完成此操作后,您可以访问所需的文件,如下所示:

<link rel="stylesheet" type="text/css" href="/public/css/bootstrap.min.css"/>