1

Eleventy で生成した Web サイトで作成したページを削除したいと思いますa-post.md。そして、私はそれを行う正しい方法が何であるかを知りません。

「ソース」ページを削除しただけで、案の定、サイトから消えてしまいました。ただし、_siteディレクトリに生成されたファイルはまだそこにあります。これらを手で「掃除」することになっていますか、それとも何か間違っていますか?

この種のことは Stackoverflow で問題視されるべきではないことはわかっていますが、Eleventy (および静的サイト ジェネレーター) の世界の初心者として、この問題に関する初心者向けのドキュメントがないことに困惑しました。ページを作成およびカスタマイズする方法に関する多くの記事や投稿もありますが、ページを正しく破棄する方法については記載されていません。

4

1 に答える 1

0

あなたが説明している問題は、通常、ローカル マシンでの開発中にのみ発生し、ビルド間でサイトの出力が固執します。SSG は、アトミック デプロイに重点を置いています。これは、すべてのデプロイが独自の一時コンテナー環境で実行され、生成されたサイトが以前のビルドを完全に置き換えることを意味します。これは、新しくデプロイされたビルドに以前のビルドのファイルが含まれないことを意味します。これは、NetlifyVercelなどのすべての SSG ホスティング プロバイダーに当てはまります。

あなたが説明している問題は、通常、開発中にローカルでのみ発生し、サイトの新しいバージョンを 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 に答える