Получение локальных файлов JSON с интернационализацией в django

Я делаю сайт на django и включил интернационализацию. Интернационализация прекрасно работает на других страницах, за исключением случая, когда я пытаюсь получить json-файл.

Поиск принимает слово, затем находит соответствующий JSON-файл в файле javascript (ниже). Поиск работал без проблем, пока я не добавил интернационализацию. Теперь я вижу, что когда jquery пытается получить файл, он включает i18n аббревиатуру спереди, что приводит к ошибке 500. Я пробовал разбирать расположение файла, но аббревиатуры всегда добавляются в getJSON. Как мне решить эту проблему?

Конкретно в консоли отображается следующая ошибка:

ПОЛУЧИТЬ http://localhost:8000/en/static/assets/chowords/amo.json 500 (Внутренняя ошибка сервера)

Логично, что это ошибка, поскольку json-файл находится по адресу http://localhost:8000/static/assets/chowords/amo.json. Я пробовал хранить файлы в директории "en" со статическими вложенными внутри, но это не решило проблему.

Код для справки:

  1. Файл Javascript
new URLSearchParams(window.location.search).forEach((value,name)=>{

    console.log(name)
    console.log(value)
    var fileword = value;

    var url = "./static/assets/chowords/" + fileword + ".json";

    var xhr = new XMLHttpRequest();
    xhr.open('HEAD', url, false);
    xhr.send();
    console.log(xhr)

    document.getElementById("wordsearched").innerHTML =`<h1>${fileword} </h1>`

    if (xhr.status == "404") {
        //console.log("File doesn't exists");
        let div = document.createElement('p')
        div.innerHTML =`<h3>No results found</h3>`
        document.getElementById("word").appendChild(div)

    } else  {
        console.log("here");
        $.getJSON("static/assets/chowords/" + fileword + ".json", function(data){

                var senses = data['sense'];
                console.log(senses.length)
                var audios = data['audio']
                var variant = data['variant']

                for (var i = 0; i <senses.length; i++){
                    let wording = senses[i];
                    wordtemplate(wording, audios, variant)
                }
            });
    }
    })
  1. settings.py показывает коды для интернационализации

Большое спасибо за любую помощь в этом вопросе!

Это относительный путь

 $.getJSON("static/assets/chowords/"...

Измените его на

$.getJSON("/static/assets/chowords/"...

поэтому она становится абсолютной.

Также, чтобы просмотреть сообщение об ошибке, вы можете перейти на вкладку "Сеть" в инструментах разработчика, выбрать запрос, в котором произошла ошибка, затем перейти на вкладку предварительного просмотра.

Вернуться на верх