Китайский URL-адрес правильно загружается в Edge, но не в других браузерах

Эта страница был разработан на английском языке, который хорошо работает в браузерах Chrome и Edge. Некоторые члены сообщества попросили тогда перевести его на китайский язык. Та же стратегия для создания страницы была использована со следующим результатом: страница.

Проблема в том, что иногда страница китайской версии не загружается. Особенно при вставке URL-адреса из другого места. С другой стороны, при переходе с целевой страницы в области блога он отображается правильно.

Как это исправить, чтобы он корректно работал во всех браузерах. Одна интересная вещь, которую я только что заметил, заключалась в том, что иногда копирование ссылки приводит к:

https://ethereumclassic.github.io/blog/2017-08-27-%E7%A4%BE%E4%BC%9A%E5%B8%81%E7%9A%84%E5%B4%9B%E8%B5%B7/

Иногда в:

https://ethereumclassic.github.io/blog/2017-08-27-%E7%A4%BE%E4%BC%9A%E5%B8%81%E7%9A%84%E5%B4%9B%E8%B5%B7/


person Prophet Daniel    schedule 03.09.2017    source источник
comment
Что-то в вашем js (я бы где-то отсутствовал encodeURIComponent), отключение которого загружает страницу правильно. Хотя я не думаю, что кто-то будет копаться во всей странице, чтобы найти виновника.   -  person Kaiido    schedule 03.09.2017
comment
Возможно, с этим есть связь: stackoverflow.com/questions/7184802/   -  person Prophet Daniel    schedule 03.09.2017
comment
Поскольку страница была сгенерирована с помощью Gatsbyjs, я также создал проблему здесь: github.com/gatsbyjs/gatsby /вопросы/2010   -  person Prophet Daniel    schedule 03.09.2017
comment
Страница загружается, не имеет значения, кодированы ли китайские символы URI или нет, проблема в том, что после загрузки страницы React удалит содержимое и заменит его пустым узлом. Вероятно, ошибка в GatsbyJS, может быть, из-за китайских иероглифов, а может и нет, пока не знаю. Что, кажется, имеет значение, так это история браузера (если вы переходите с целевой страницы, или если вы открываете с другой страницы или вручную, история отличается, и это влияет на поведение GatsbyJS). Попробуйте поставить точку останова в ReactMount.js строке 423.   -  person Hugues M.    schedule 07.09.2017
comment
Видно, что загружается китайская страница, потом что-то в js удаляет содержимое тела   -  person Marco Salerno    schedule 13.09.2017


Ответы (3)


проверьте поставщика bundle.js на наличие обновлений. Похоже, это старая версия.

function webpackContextResolve(req) {
    return map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }());

// error occurs in above.
};

Для отладки кода загрузки веб-сайта сначала перейдите на пустую страницу (about:blank). Затем отобразите и закрепите инструмент разработчика на пустой странице... выберите вкладку отладки инструментов разработчика и выберите "Разбить все исключения" в раскрывающемся списке... (выглядит как знак "Стоп").

Не закрывая инструмент разработчика, вернитесь на пустую страницу и перейдите на английский, а затем на китайский сайты... теперь инструмент разработчика будет ломаться из-за ошибок. map undefined error Для отладки проблем со сниффингом браузера. (найдите код, который использует обнюхивание браузера userAgent для загрузки разных версий веб-сайта). Используйте вкладку отладки инструмента разработчика, чтобы найти вхождения «navigator» или «userAgent». найти код прослушивания UserAgent

Вы можете проверить, неправильно ли веб-сайт определяет функции браузера, изменив заголовок userAgent на вкладке «Эмуляция» инструментов разработчика. Как ни странно, изменение UAS в инструментах разработки в IE11 приводит к тому же результату... предполагает, что причиной является назначение enableLazy в bundle.js. изменение UAS, используемого браузером, на вкладке var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge/\d/.test(navigator.userAgent);

bundle.js кажется проблемой .... проверьте веб-сайт поставщиков на наличие обновлений их программного обеспечения....

Кроме того... вы установили язык страницы en... он должен быть zh. например.lang="zn"......

person Rob Parsons    schedule 11.09.2017

Я обнаружил некоторые проблемы из-за кодировки URL и разницы между строчными и прописными буквами.

С PHP я делаю преобразование URI перед синтаксическим анализом маршрутизатора:

if(strpos($_SERVER['REQUEST_URI'], '%') > 0){
    $uri = $_SERVER['REQUEST_URI'];
    $result = preg_replace_callback(
        '/\%(\w{2})/',
        function ($matches) {
            return strtoupper($matches[0]);
        } ,
        $uri
    );
    $_SERVER['REQUEST_URI'] = $result;
}
person Jorge    schedule 13.09.2017

Ваша проблема в том, что bundle.js, удалив его, я без проблем получил вашу веб-страницу:

введите здесь описание изображения

Вы поместили его в неподдерживаемое событие?

JS говорит:

  • ПРИМЕЧАНИЕ. Это не будет работать правильно для неуниверсальных событий, таких как change, * reset, load, error и select. *
person Marco Salerno    schedule 13.09.2017