Rooney (Deepak Bisht) Ответов: 1

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


Недавно мы перешли с Sitecore 7.2 на 9.0.2, и с тех пор мы начали получать следующую ошибку, когда мы пытаемся добавить элемент управления(нажав кнопку "Добавить здесь") с источником данных из редактора опыта. Это происходит только на экземпляре Sitecore версии 9.0.2. Наш проект не является проектом MVC. Просто простые веб-формы. Это происходит при нажатии либо на первое, либо на второе добавление здесь, на странице. Мы не ссылаемся Prototype.js в проекте так что не уверен, что перевод jQuery в неконфликтный режим поможет. Кроме того, мы можем добавить элементы управления с источником данных, перейдя к деталям презентации страницы в Sitecore. Любая помощь будет очень признательна.

Ниже приведены скриншоты ошибки, которую я получаю.

https://i.stack.imgur.com/LmhE5.png[^]

А ошибка в JS

https://i.stack.imgur.com/uItNp.png[^]

Что я уже пробовал:

Мы не ссылаемся Prototype.js в проекте так что не уверен, что перевод jQuery в неконфликтный режим поможет. Кроме того, мы можем добавить элементы управления с источником данных, перейдя к деталям презентации страницы в Sitecore.
Я также попытался создать новый элемент управления(рендеринг), но это не помогло.
Добавление/удаление разрешенных элементов управления заполнителя также не помогло.

Richard MacCutchan

Вероятно, вам нужно обратиться в техническую поддержку Sitecore.

F-ES Sitecore

The way I normally help diagnose these issues is to create a completely basic layout with just an html and body section with a placeholder, create a new rendering with just something like "Hello world" in it, then see if you can add the basic rendering to your basic layout. If that doesn't work then there is something fundamentally wrong with your Sitecore solution (did you go from 7 to 8 and then 9?) If that does work but it doesn't work on your own pages then something you are adding to the page (custom js or custom js library) is interfering with the js that Sitecore is adding. If that is the case remove your custom scripts bit by bit and when it starts working the last thing you removed is probably the issue.

Rooney (Deepak Bisht)

Спасибо за ответ. Да, мы действительно перешли с 7 на 8, а затем на 9 в текущем обновлении. Кто-то на работе попробовал базовый макет с базовым рендерингом и сказал, что это работает. Я тоже попробую и подтвержду.
Я попытался удалить все ссылки JS из макета один за другим, и это, к сожалению, не помогло.

F-ES Sitecore

Если базовый макет работает, но не ваша страница, то это должно быть что-то на Вашей странице. Это может быть не js, это также может быть недопустимая разметка, например, вы открыли тег, но не закрыли его, поэтому попробуйте запустить вывод страницы через html-валидатор. Кроме того, это просто случай методичного удаления вещей, пока вы не узнаете, что их сломало.

1 Ответов

Рейтинг:
8

Rooney (Deepak Bisht)

Спасибо всем за ваши комментарии и помощь. Проблема заключалась в том, что в Sitecore 9, когда пользователь добавляет элемент управления на страницу с помощью редактора опыта, при последнем нажатии кнопки добавления (после предоставления источника данных) он рассматривается как событие POST. В Sitecore 7.2 это был запрос GET.

У нас был некоторый код, написанный в нашем бэкэнде (файл.cs), который искал, чтобы увидеть, является ли это типом запроса POST, и если да, то перенаправить на другую страницу. Как внизу.

если (запрос.HttpMethod == "POST")
{
//перенаправление на другую страницу
}

Я добавил здесь галочку, чтобы запускать этот код только тогда, когда пользователь не находится в режиме редактора опыта, как показано ниже.

если (запрос.HttpMethod == "POST" && !репозиторий.IsUserEditting())
{
//перенаправление на другую страницу
}

Это исправило проблему. Спасибо снова. Дайте мне знать, если у кого-нибудь возникнут вопросы.