gpt4 book ai didi

javascript - PUG中的绝对路径

转载 作者:行者123 更新时间:2023-12-03 03:39:50 25 4
gpt4 key购买 nike

根据PUG文档(https://pugjs.org/language/includes.html):

If the path is absolute (e.g., include /root.pug), it is resolved by prepending options.basedir. Otherwise, paths are resolved relative to the current file being compiled.

我的理解包括将路径介词作为选项传递给 res.render()。但是,我想尽可能避免重复自己的麻烦,并且更喜欢顶级解决方案。

我尝试使用app.locals.basedir,但我的代码无法预先添加basedir 路径。因此找不到该文件。

这是我的 Express.js 应用索引的主干:

// index.js

const express = require('express');
const app = express();

const path = require('path');

app.locals.basedir = __dirname;

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

app.get('/', function(req, res){
res.render('index');
});

app.listen(3000, function(){
console.log('Server started on port 3000');
});

我的PUG文件如下:

// views/index.pug

doctype html
html
head
script(type='text/javascript' src='/public/lib/map.js' defer='defer')

title ExpressApp
body
h1 Hello, World!

我的项目结构:

project/
index.js
views/
index.pug
public/
lib/
map.js

PUG 文件中使用绝对路径插入 javascript 文件的正确方法是什么?

最佳答案

Express.js 应用程序中,只需使用 app.use(express.static('public')) 设置 Web 根目录,以便应用程序知道从哪里获取静态文件。不需要 app.locals.basedir = __dirname

PUG 文件中,脚本应按如下方式插入:

script(type='text/javascript' src='/lib/map.js' defer='defer')

关于javascript - PUG中的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45676302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com