HEXOのURLが大文字小文字の混在している場合にアクセスできない時の対処方法
URLに大文字が含まれているとページが 404 not found になってアクセスできなかったので修正しました。
URLのファイル名が大文字になっているとアクセスできない
URLが大文字になってるとテスト環境ではアクセスできるのに本番環境ではアクセスできないことを実際にクリックしてやっと気づきました。
テスト環境はWindows上で動かしているので、URLが大文字小文字どちらであっても区別なくアクセスできるのですが、UNIXだと区別されますね。
で、どうするかというと、HEXO自体に設定項目がありました。
1 | # Writing |
これでファイル名は小文字に変更されます。
で、これだけでは解決しきれなかったので、続きます!
タグ名が大文字になったまま
再構築してもタグのディレクトリ名が大文字を含むまま変更されていなかったので調べてみると、先ほどの設定ではファイル名のみの変更でタグには適用されないとのこと。
tags and categories are case sensitive #3875
https://github.com/hexojs/hexo/issues/3875
プラグインの導入
hexo-easy-tags-plugin というプラグインを入れると良いとのこと。
hexo-easy-tags-plugin GitHub
https://github.com/dailyrandomphoto/hexo-easy-tags-plugin
インストール
1 | $ npm install hexo-easy-tags-plugin |
_config.yml に追記。
1 | #hexo-easy-tags-plugin |
1 | hexo d -g |
直らない。orz
いっかい全部綺麗さっぱりにしてみます。そして再構築。(READMEにちゃんと書いてありました。ちゃんと読もう。)
1 | hexo clean && hexo g |
無事、タグのディレクトリ名が小文字に統一されてアクセスできるようになりました。
他のオプションは以下の通り。
1 | #hexo-easy-tags-plugin |
enable
プラグインを有効化するかどうか。(既定値: true)tag_name_case
タグの文字を大文字にするか小文字にするか、もしくは変換しないか。(既定値: 0)
0 無変換 / 1 小文字 / 2 大文字sort_ignore_case
ソート時にタグの大文字小文字を無視する。(既定値: true) list_tags()
およびtagcloud()
において処理を助ける。action
report を指定すると、タグの競合がないかのレポートを出力して終了する。(既定値: correct)
設置しておけば、以前に設定したタグに合わせて書き換えてくれているようです。
:D
HEXOのURLが大文字小文字の混在している場合にアクセスできない時の対処方法
https://fennote.fareastnoise.com/2022/04/07/hexo-filename-case/