前提・実現したいこと
ランダムに画像を読み込み表示させる試作中のDjangoアプリで、マルチバイトの文字を含むファイル名の画像を読み込めるようにしたいと試行錯誤しています。
ローカルの仮想環境下では問題なかったのですが、Pythonanywhere上にデプロイするとこの問題が発生します。
発生している問題・エラーメッセージ
具体的には、フランス語の"é"を含むファイルです。例えば"présent.png"というファイルがランダムに選ばれた場合、以下のエラーが出ます。
GET http://ユーザー名.pythonanywhere.com/static/myapp/images/pre%CC%81sent.png 404 (Not Found)
一方、同じような性質と思われる"ç"を含むファイル("ça.png")は、「%C3%A7a.png」という形で問題なく読み込まれ表示されます。
試したこと
「Django 多言語化/国際化」等で調べてみて、setting.pyに以下を追加してみたのですが、解決出来ませんでした。
また、「LANGUAGE_CODE = 'fr'」にしてもダメでした。
Python
1from django.utils.translation import ugettext_lazy as _ 2 3MIDDLEWARE = [ 4 'django.middleware.security.SecurityMiddleware', 5 'django.contrib.sessions.middleware.SessionMiddleware', 6 'django.middleware.locale.LocaleMiddleware', #←これを追加 7 'django.middleware.common.CommonMiddleware', 8 'django.middleware.csrf.CsrfViewMiddleware', 9 'django.contrib.auth.middleware.AuthenticationMiddleware', 10 'django.contrib.messages.middleware.MessageMiddleware', 11 'django.middleware.clickjacking.XFrameOptionsMiddleware', 12] 13 14LANGUAGE_CODE = 'en-us' 15 16LANGUAGES = [ 17 ('fr', _('French')), 18 ]
補足情報(FW/ツールのバージョンなど)
ネット上では、翻訳させるなどの本格的な対応への情報はあるのですが、このような初歩的な問題に対する答えやヒントが見つからなかったので、ここで質問させて頂くことにしました。
どうかよろしくお願い致します。
[環境]
Mac Os Catalina
Django 3.1.1
Python 3.8