0

今天,我遇到了使用沙盒解决方案在 SharePoint 2010 中为自定义网站模板设置预览图像的问题。

我使用了团队站点模板并在 Elements.xml 文件的 ImageURL 中给出了图标图像。作为它的沙箱,我将图像文件存储在网站集样式库中。我的问题是如何为网站集样式库中存在的图像 URL 提供相对 URL。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<WebTemplate BaseConfigurationID="0" 
           BaseTemplateID="1"
           BaseTemplateName="STS"
           Subweb="FALSE"
           Name="WTTeamSite"
           Title="Team site"
           Description="Create a Team site"
           ImageUrl="/Style Library/img/site-icon.png"
           DisplayCategory="Custom" /> 
</Elements>

如果我提供完整的网址,例如:http://wsdl:3333/sites/Corporate/Styles Library/img/site-icon.png它有效。但是,如果我给出相对 URL,例如 [../../Styles Library/img/site-icon.png] 或 [../Styles Library/img/site-icon.png] 或 [~sitecollection/Styles Library/img /site-icon.png] 或 [样式库/img/site-icon.png] 或 [/样式库/img/site-icon.png] 不起作用。如何使用相对 URL 使此预览图像工作。

注意:我不能使用 layouts 文件夹,因为它必须是沙盒解决方案。谢谢。

4

1 回答 1

0

我认为问题在于您引用 URL 的方式。

当您有一个相对 URL 时,该引用是相对于 webapp 级别的。例如http://wsdl:3333/

因此,使用您提供的 URL,如果您想要一个相对 URL,您的 ImageURL 将是:

/sites/Corporate/Styles Library/img/site-icon.png

为了验证您有一个“好”的 URL,我喜欢通过更改站点徽标并单击“单击此处进行测试”链接来运行测试。

这是您遇到沙盒解决方案的缺点的地方,其中 URL 取决于站点集合,以及具有访问“/_layouts/Images”映射文件夹的场解决方案的优点,其中 URL 不会更改。

我使用的一种可能的解决方法是将图像放在根站点上,或者有一个名为“资源”的静态网站集,或者其他东西,你可以在其中放置需要全局访问的东西,它是一个已知的 URL .

于 2013-11-08T22:19:47.823 回答