我正在为我的网页构建一个后端,文件结构如下所示:
public
css
main.css
main_b.css
index.hbs
index_b.hbs
server
server.js
在索引文件中引用样式工作表的链接属性包括:
Rel=“样式表”type=文本/css“href=”main.css Rel=“样式表”type=文本/css“href=”main_b.css
这是我的server.js:
const path = require('path');
const fs = require('fs');
const express = require('express');
const app = express();
const hbs = require('hbs');
hbs.registerPartials(path.join(__dirname, '../public/partials'));
app.set('view engine', 'hbs');
app.use(express.static(path.join(__dirname, '../public/css')));
// activity logger
app.use((req, res, next) => {
const now = new Date().toString();
const logEntry = `${now}: ${req.headers.host} ${req.method}${req.url}`;
fs.appendFile(path.join(__dirname, '../server/server.log'), logEntry.concat('\n'), (error) => {
if (error) {
console.log(error);
}
});
process.env.route = req.path;
next();
});
app.get('*', (req, res) => {
switch (process.env.route) {
case '/': // home page
res.render('../public/index.hbs');
break;
case '/b': // basic layout
res.render('../public/index_b.hbs');
break;
default: // unknown routes
res.render('../public/index.hbs');
}
});
app.listen(3000);
在请求localhost:3000时,日志条目可以:
清华2019年1月24日07:57:08 GMT+0200 (东欧标准时间):本地:3000 GET/
在请求localhost:3000/abc时,日志条目也可以:
清华2019年1月24日07:57:08 GMT+0200 (东欧标准时间):本地主机:3000 GET/abc
在使用localhost:3000/abc/def等子路由测试请求时,css没有呈现,日志条目是:
清华1月24日2009:08:55 GMT+0200 (东欧标准时间):本地主机:3000 GET/abc/def清华1月24日2019 08:04:56 GMT+0200 (东欧标准时间):本地主机:3000 GET/abc/teamk-resreet.css清华1月24日2009:04:56 GMT+0200 (东欧标准时间):本地主机:3000 GET/abc/main.css
我看到部分路由用于修改css查找路径,并试图通过Express.static()中选项对象的索引和重定向属性来解决这个问题,但没有成功。
很高兴收到一些指示/参考,否则我可能应该重构我的路由查询方法。
发布于 2019-01-25 15:53:26
我发现我的代码有问题,
在索引文件中,应通过包含以下内容的链接属性引用样式工作表:
Rel=“样式表”type=文本/css“href=”/main.css Rel=“样式表”type=文本/css“href=”/main_b.css
,它们的名称以“/”作为正确查找URL结构的前缀。
https://stackoverflow.com/questions/54340610
复制