GitHub Pagesが大好きです。 私はできる限りすべてにそれらを使用し、ペストのようなサーバー側のコードを避けようとします。 変更をリポジトリにプッシュすると、フックや追加の手順なしですぐにユーザーに表示されます。 無料でさらに魅力的になります。
私の本を出版するときが来たとき、当然、付随するWebサイトをGitHub Pagesに掲載したかったのです。
しかし、1つの問題がありました。たとえば、美しいURL、たとえば
http://play.csssecrets.io/pie-animatedが必要
でした 。これは
dabblet.comのデモにリダイレクトされます。 普通の人なら誰でも弾丸を噛んで、これに何らかの種類のサーバー言語を使用するでしょう。 しかし、私は非常に正常ではありません:)
GitHubはすでにGitHubページに独自の書き換えURLを使用していることが
404.html
ます
404.html
をリポジトリに追加すると、存在しないURLがリダイレクトされます。 ちょっと待ってください。美しいURLが機能するように、サーバー上で行っているのと同じことではないでしょうか。
404.html
JavaScriptを使用して、サーバー上で行うこととまったく同じことを行うことができます。
だから、私は作成しました:
- すべてのデモIDと対応するダブレットURLを含むJSONファイル 、
- 404.html 、リダイレクトまたはエラーを表示
- URL、JSONファイルを読み取り、ダブレットにリダイレクトするVanilla JSスクリプト 。
ここで、実際には、殻のないJS:
(function(){ document.body.className = 'redirecting'; var slug = location.pathname.slice(1); xhr({ src: 'secrets.json', onsuccess: function () { var slugs = JSON.parse(this.responseText); var hash = slugs[slug]; if (hash) {
以上です! 同じ手法を使用して、GitHub Pagesの他のHTMLページにリダイレクトしたり、1ページのサイトの人道的なURLを使用したりすることができます。 これはハッキングですか? もちろん。 しかし、いつそれが私たちを止めましたか? :)