0

我对 SharePoint 自定义 Web 部件有疑问。它已成功部署和激活,并且可以在许多经过测试的环境中运行,除了一个特定的环境,因此问题应该在 SharePoint 环境中的某个地方,而不是在 Web 部件本身。

当使用默认 SharePoint UI 将 Web 部件添加到该环境中的任何 SharePoint 页面时,可以添加它,但所有图像和其他资源都不可见。但是,它们已成功安装并存在于 SharePoint 文件存储库的 FEATURES 文件夹中。

我猜它与 SharePoint 配置、权限或其他东西有关,但不知道究竟是什么?

4

1 回答 1

0

问题出在资源的错误 URL 中。在根站点中使用时:

http://mysite/

从 url 加载资源

http://mysite/myresources/images/image1.jpg ,

但是当在具有这样 URL 的站点上使用时

http://mysite/sites/site2

资源仍在从 URL 加载

http://mysite/myresources/images/image1.jpg

但预计将从以下位置加载:

http://mysite/sites/site2/myresources/images/image1.jpg ,

解决方案

解决方案是将 GlobalPath 添加到资源路径,而不是使用:

<img src="/myresources/images/image1.jpg" />

我们应该使用这个:

<img src=GlobalPath+"/myresources/images/image1.jpg" />

其中 GlobalPath 是这样计算的:

var GlobalPath = _spPageContextInfo.siteServerRelativeUrl;
if (GlobalPath == "/") {
    GlobalPath = "";
}

希望这可以帮助某人。

于 2012-10-18T11:36:03.683 回答