Изменения JSlink после создания сайта из шаблона

Я создал сайт с несколькими списками и несколькими рендерерами CSR для этих списков. Я применил рендереры к формам через JSLink. Затем я попытался сохранить сайт как шаблон и создать еще один из этого шаблона. Все ссылки JS теперь не работают и никуда не ведут.

Вот один из JSLinks с исходного сайта:

 <JSLink xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">~Site/SiteAssets/FormsManagement/Js/utils.js|~Site/SiteAssets/FormsManagement/Js/paymentsFormRenderer.js</JSLink>
</WebPart>

А вот что изменилось после создания шаблона:

<JSLink xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">/sites/home/test-subsite/SiteAssets/FormsManagement/Js/utils.js|/sites/home/test-subsite/SiteAssets/FormsManagement/Js/paymentsFormRenderer.js</JSLink>

Эти изменения нарушают всю мою CSR, и я понятия не имею, как это исправить. Я знаю, что эти две ссылки должны быть эквивалентны, хотя на воссозданном дочернем сайте браузер пытается загрузить javascript из домена cdn.sharepointonline.com, что неверно. (Я подозреваю, что это связано с неправильной относительной адресацией).

Вся помощь очень ценится! Заранее спасибо.


person MarengoHue    schedule 18.06.2015    source источник


Ответы (1)


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

Я полностью отказался от идеи использовать JSLink и вместо этого использовал тег <SharePoint:ScriptLink> и таким образом включил скрипты. Я обернул свои сценарии так, чтобы они использовали ExecuteOrDelayUntilScriptLoaded([Script's closure here], 'clientForms.js');. Кажется, это дает тот же результат, что и использование JSLink, но токены в JSLink не расширяются до относительных URL-адресов, а ссылки не разрываются. Единственным недостатком является то, что никто не может изменять сценарии без Sharepoint Designer, поскольку они больше не указаны в поле JSLink.

person MarengoHue    schedule 18.06.2015