从模板创建网站后,JSlink发生了变化

时间:2015-06-18 09:09:00

标签: sharepoint-2013 sharepoint-online jslink

我为这些列表创建了一个包含多个列表和几个CSR渲染器的站点。我通过JSLink将渲染器应用于表单。然后我尝试将网站保存为模板,并从此tempalte创建另一个。所有的JS链接现在都被破坏了,无处可去。

以下是初始网站的一个JSLink:

 <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,我不知道如何解决它。我知道这两个链接必须是等效的,尽管在重新创建的子网站上,浏览器会尝试从cdn.sharepointonline.com的域加载javascript,这是错误的。 (我怀疑这是由于错误的相对寻址)。

非常感谢所有帮助!提前谢谢。

1 个答案:

答案 0 :(得分:1)

所以我明白了。我不确定问题是什么,但我发现似乎工作得很好的解决方法。

我完全摒弃了使用JSLink的想法,而是使用了<SharePoint:ScriptLink>标记并以这种方式包含了脚本。我将脚本包装起来,以便他们使用ExecuteOrDelayUntilScriptLoaded([Script's closure here], 'clientForms.js'); 这似乎产生与使用JSLink相同的结果,但JSLink中的标记不会扩展到相对URL并且链接不会被破坏。唯一的缺点是,没有Sharepoint Designer,没有人能够修改脚本,因为它们不再列在JSLink字段中。