脚本文件文件未通过ScriptLink自定义操作加载

时间:2014-09-10 19:58:03

标签: sharepoint sharepoint-2013 sharepoint-apps

我遇到了脚本链接自定义操作的问题。我正在构建一个SharePoint应用程序,并且我成功添加了一个指向样式库中脚本文件的站点范围自定义操作,因为我希望将此特定脚本注入我的SharePoint站点的所有页面。

虽然它在某些情况下有效,但在某些情况下,脚本链接注入会在没有明显原因的情况下中断。例如,当我到达我的根网站时,将注入脚本。但是,如果我转到此Web中的某个链接(例如Home或Site Contents),则应该从样式库中取出应该注入的文件,因此永远不会被注入,从而导致未被捕获的ReferenceError我试着调用一个脚本的函数。最奇怪的部分是,通过Ctrl + F5刷新页面将毫无问题地获取脚本文件,无论页面在首次访问时最初获取脚本文件的能力如何。它将保留脚本,直到再次通过链接访问它。

我已经阅读了Sharepoint caching,认为这可能是我问题的原因,但问题是这些文章主要是在更新文件时讨论缓存引发的错误,而我只是想访问它。

有一点需要注意的是,由于限制,我通过代码添加脚本链接自定义操作。以下是我的应用程序中此类调用的示例:

context.Load(context.Site.UserCustomActions);
context.ExecuteQuery();

customAction.Name = "MyScriptLink";
customAction.Location = "ScriptLink";
customAction.Sequence = 100;
customAction.ScriptSrc = "~SiteCollection/Style Library/MySite/MyScript.js";

customAction.Update();
context.ExecuteQuery();

那么,这里发生了什么?为什么我的脚本没有在某些页面上注入?为什么在这些完全相同的页面上刷新可以毫无问题地获取文件?

1 个答案:

答案 0 :(得分:1)

发现它!三个字:最小下载策略。禁用它,它会混淆SharePoint网站中的页面重定向行为(通过代码或通过站点设置)

修改:如果您仍希望在您的网站上启用MDS,则会有solution