1

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

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

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

4

1 回答 1

0

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

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

地方发展

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

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

手动部署

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

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

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

于 2021-04-06T08:19:39.417 回答