今天我遇到了一个问题,使用Sandbox解决方案在SharePoint 2010中设置自定义网站模板的预览图像。
我使用了Team网站模板,并在Elements.xml文件中的ImageURL中给出了Icon图像。作为其沙盒,我将图像文件存储在网站集样式库中。我的问题是如何为网站集样式库中提供的图像网址提供相对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
就行了。
但是,如果我提供像[../../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文件夹,因为它必须是沙箱解决方案。 感谢。
答案 0 :(得分:0)
我认为问题在于您引用网址的方式。
如果您有相对URL,则该引用与Web应用程序级别相关。
例如http://wsdl:3333/
因此,使用您提供的网址,如果您需要相对网址,您的ImageURL将是:
/sites/Corporate/Styles Library/img/site-icon.png
要验证您是否拥有“良好”的网址,我希望通过更改网站徽标并点击“点击此处测试”链接来运行测试。
这是您遇到沙盒解决方案的缺点,其中URL根据网站集进行通信,以及使用访问“/ _layouts / Images”映射文件夹的服务器场解决方案的优势,其中URL不会变化
我使用过的一种可能的解决方法是将图像放在根网站上,或者拥有一个名为“资源”的静态网站集,或者其他东西,在这里您可以放置需要全局访问的内容,而且它是一个已知的URL。