子目录的十一配置 - 用于图像和静态资产

Posted

技术标签:

【中文标题】子目录的十一配置 - 用于图像和静态资产【英文标题】: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”。

有什么想法吗?

【问题讨论】:

【参考方案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" 十一

以上是关于子目录的十一配置 - 用于图像和静态资产的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 5 产品首选项编辑器的资产目录中访问图像(用于文档图标)

如何告诉资产目录 (.xcassets) 对多个图像井使用相同的图像?

资产目录 ImageSet - 编辑 Contents.json

从 Vue 访问 CakePHP webroot 目录:图像加载

如何在 Xcode 资产目录中分配启动图像?

在资产目录中切片 PDF 资源是不是损坏?