0

我为这些列表创建了一个包含多个列表和多个 CSR 渲染器的站点。我通过 JSLink 将渲染器应用于表单。然后我尝试将站点保存为模板并从这个模板创建另一个。现在所有的 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,这是错误的。(我怀疑这是由于错误的相对寻址)。

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

4

1 回答 1

1

所以我想通了。我不确定问题出在哪里,但我发现似乎工作得很好的解决方法。

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

于 2015-06-18T13:38:13.890 回答