我已在 app.js 中将静态文件夹设置为公共(public)(在应用程序文件夹的根目录中)。 但仍然是 Handlebars 布局文件在链接css文件时,无法在public文件夹中找到文件。
// 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"/>
最佳答案
首先,您必须使用 robertklep 提到的绝对路径在评论中。
现在的问题是,您正在使用 app.set
这就是问题所在,您必须使用 .use
方法而不是 .set
。
现在关于如何构建目录,我建议分配一个像“/public”这样的目录路径来访问公共(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"/>
关于node.js - 设置express js静态文件并将它们包含在模板文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44924671/