【问题标题】:How to delete page from an Eleventy website?如何从 Eleventy 网站删除页面?
【发布时间】:2021-06-29 02:23:37
【问题描述】:

我想删除我在 Eleventy 生成的网站中创建的页面,我们称之为a-post.md。而且我不知道什么是正确的做法。

我只是删除了“源”页面,果然,它从网站上消失了。但是,它在_site 目录中生成的文件仍然存在。我应该手动“清理”这些东西还是我做错了什么?

我知道这类东西不应该成为 Stackoverflow 上的问题 - 但作为 Eleventy(和静态网站生成器)世界的新手,我对缺乏对新手友好的文档感到困惑。还有很多关于如何创建和自定义页面的文章和帖子,但没有关于如何正确处理它们。

【问题讨论】:

  • 建议在项目 github repo 中提交文档错误:github.com/11ty/eleventy/issues
  • @ahmed 由于我通常将 _site 文件夹放在 11ty 项目的 .gitignore 中,如果要删除,您可以从 _site 中的站点输出中删除生成的文件一个模板,例如a-post.md。也就是说,您必须删除源文件 a-post.md 以及为该页面生成并放入 _site 的任何内容。

标签: eleventy static-site-generation


【解决方案1】:

您所描述的问题通常只发生在您本地机器上的开发过程中,其中站点输出停留在构建之间。 SSG 非常适合atomic deploys。这意味着每个部署都将在它自己的临时容器环境中执行,并且生成的站点将完全取代以前的构建。这意味着新部署的构建将永远不会包含来自先前构建的文件。这适用于所有 SSG 托管服务提供商,例如 NetlifyVercel

您所描述的问题通常仅在开发过程中发生在本地,并且如果您通过 SFTP 或类似方式上传网站的新版本手动部署它。

地方发展

最佳做法是在构建步骤之前删除您的输出文件夹,以便您的本地构建与您将在实时环境中获得的原子部署相匹配。您可以将 clear 命令放在构建脚本中,这样您就不必考虑它(假设您的输出目录是 dist):

"scripts": {
    "build": "rm -rf dist/ && eleventy"
}

手动部署

这确实不是部署站点的最佳方式,但如果您这样做,我会尝试模仿原子部署:

  1. 在您的活动站点的 webroot 旁边上传新版本。例如,如果您的实时站点位于htdocs,则将新站点上传为htdocs-new
  2. 删除htdocs 文件夹。
  3. htdocs-new 重命名为htdocs

这样,您将永远不会留下任何以前构建的残余物。缺点是在第 2 步和第 3 步之间,您的站点将不可用,而 Netlify 或 Vercel 上的原子部署的停机时间为零。

【讨论】:

    猜你喜欢
    • 2017-05-24
    • 2014-01-28
    • 2017-02-24
    • 1970-01-01
    • 2020-05-30
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多