Я активировал i18n в моем проекте Django и использовал i18n_patterns в моем urls.py
.Все переводы работают нормально и меняются всякий раз, когда меняется код языка в URL.Проблема доходит до картинки в папке media.
У меня есть несколько изображений в папке мультимедиа в качестве фона слайдера, и они меняются каждые несколько секунд.С этим i18n_patterns он читает медиа-файлы из /en/media/
вместо /media/
.В этом случае я создал папку /en/media/
только для английского языка и создал папку /zh/media/
для китайского языка.Но проблема в том, что он всегда возвращает 404, даже если изображения есть.Все изображения в папке /zh/media/
не отображаются.И только 2 из 4 изображений в папке /en/media/
показывает.Это очень смущает меня.Надеюсь, вы, ребята, имеете представление о том, что здесь происходит.
Ниже приведена часть кода в связанных файлах:
settings.py
LANGUAGE_CODE = 'en'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale')
]
LANGUAGES = [
('en', _('English')),
('zh', _('Chinese')),
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py
urlpatterns = [
]
urlpatterns += i18n_patterns(
path('admin/', admin.site.urls),
path('', include('pages.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
template.html
<img src="media/{% image_file_name %}" />
На консоли это выглядит следующим образом, даже если файл присутствует.
[TIMESTAMP] "GET /zh/media/XXX.jpg HTTP/1.1" 404 2798