タイトルの通りです。iconvをつけないと、日本語ファイル名で濁点・半濁点が入っている時に文字化けしてアップロードされてしまい、期待通りのURLでアクセスできません。
正解の手順は以下のとおり。
# Homebrewで最新のrsyncをインストール brew install libiconv rsync # 一旦ターミナルを閉じて、再度開く。 # rsyncのバージョン3.1以上が入っていることを確認。 rsync --version # 以下のようにiconvオプションをつけてアップロード実行 rsync --iconv=UTF8-MAC,UTF-8 -auv \ /Users/xxx/.../_site/ \ /Volumes/lolipop-abc.webdav-lolipop.jp/foobar/ # /Volumes/lolipop-abc.webdav-lolipop.jp/foobar/は、 # WebDAVでマウントした、lolipopのサーバ側のアップロード先の # ディレクトリ(Command+KでFinderでマウント)
lolipopで借りているwebサーバで、ssh接続ができないライトプランだと、FTPかWebDAVしかファイルアップロードの手段がありません。FTPだとrsyncコマンドが使えなくて面倒なので、WebDAVでマウントしてJekyllで生成したスタティックなウェブサイトのデータをアップロードしています。
Jekyllでは日本語ファイル名(サンプル.mdみたいな)のMarkdownファイルを作っても、ローカルではとくに問題なく動いていたので、lolipopの環境にアップロードして運用しようとしたところ、濁点・半濁点を含む日本語名のファイルで問題がおきました(アクセスするとファイルが存在しない、というエラーになる)。
説明の順番が逆になりましたが、上記のようにすると解決します。キモは、
- Homebrewで最新版のrsyncをインストールする
- rsync時に–iconv=UTF8-MAC,UTF-8オプションを追加する
です。
[tmkm-amazon]B00J3H931I[/tmkm-amazon]
Leave a Reply