子目录的十一配置 - 用于图像和静态资产
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