html页面统一绝对路径

发布于 2022-09-12 22:17:33 字数 122 浏览 9 评论 0

如何将所有的html页面引用同一个绝对路径,我不想在每个html的<base href=""> 中都要写绝对路径(这样如果地址变了所有的页面都要修改很麻烦),怎么实现每个页面的头部引用同一个绝对路径变量?求问,怎么实现

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

塔塔猫 2022-09-19 22:17:33

本身这个属性就是以页面起效的,所以只能每个页面去设置。
如果不想单独设置,可以考虑需要的页面都放置在相同的目录下,这个目录和相对路径有稳定的关系。

听风念你 2022-09-19 22:17:33

如果地址变了所有的页面都要修改很麻烦

不太清楚地址为什么会频繁变化。假如你有一个不会变的 base.js,在里面写

const href = "some/path"
$("head").append(`<base href="${href}"/>`)

但是这样每次要先加载一个 js,体验不是很好,考虑 gulp

// gulpfile.js

const {
    src, dest
}                    = require("gulp")
const through2        = require("through2")

const change_base = () => src("path/to/your/*.html") // TODO: 修改路径
    .pipe(through2.obj((fi, _, cb) => {
        if (fi.isBuffer()) fi.contents = Buffer.from(
            // 应该不会有多个 <base>
            fi.contents.toString().replace(/<base[^]*?>/, () =>
                `<base href="${ process.argv[1] }"/>`
            )
        )
        cb(null, fi)
    }))
    .pipe(dest("path/to/your")) // TODO: 修改路径
    
module.exports = {
    change_base
}

然后就可以很舒适地使用:

$ gulp change_base some/path

未经检验,可能有错

没有安装 gulp 的话

$ npm i -g gulp # 全局也装一个吧
$ npm i -D gulp
$ npm i -D through2 # 是脚本需要的插件
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文