【问题标题】:Eleventy Configuration for subdirectory - for images and static assets子目录的十一配置 - 用于图像和静态资产
【发布时间】:2021-09-22 01:56:25
【问题描述】:

我正在使用 Eleventy 0.11.0。在开发过程中,在 HTML 中,我有类似的东西:

<img src="/images/footer.png" />

我在根目录中有一个名为“images”的文件夹。我还配置了 110Config.addPassthroughCopy('images') - 所以它会在构建过程中复制 _site 目录中的整个“图像”。

在本地一切正常,但是当我推送到服务器时,它必须进入一个名为“ssg-pages”的子目录 - 所以图像的 src 会中断。我需要它看起来像:

<img src="/ssg-pages/images/footer.png" />

仅在构建时,但仍希望在开发期间保留“/images/footer.png”。

有什么想法吗?

【问题讨论】:

    标签: eleventy


    【解决方案1】:

    也许是这样:创建一个名为 settings.js 的 _data 文件。在其中,它返回一个对象,其中包含一个名为 site root 的键。

    module.exports = function() {
        let siteRoot = process.env.SITE_ROOT;
    
        return {
           siteRoot
        }
    }
    

    在本地这不会被定义,只是作为一个空白值出来。在生产中,将其设置为ssg-pages。然后在您的网址中:

    <img src="{{ settings.siteRoot}}/images/footer.png">
    

    【讨论】:

    • 谢谢雷蒙德。但我正在做的只是将它添加到非节点/服务器端环境 - S3。无法设置环境变量的地方。它基本上只是一个文件服务器。我所做的只是将整个 _site 目录拖到其中,它会为静态 html 文件提供服务。所以实际上,我需要它在写入 _site 目录之前进行转换
    • 如果在命令行设置呢?因此,例如,在 Unix/Mac 中,我认为您可以这样做: SITE_ROOT="foo" 十一
    猜你喜欢
    • 2016-10-16
    • 2012-06-28
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    相关资源
    最近更新 更多