一般在咱们的项目中,都会涉及到母版页的定制。而且必不可少的,须要配合以一套本身的JavaScript框架和CSS样式。
你有没有遇到过这样的状况呢,在开发环境和UAT时都还算顺利,可是当最终部署到生产服务器场时,运行完PS 脚本后,发现网页的其余部分彷佛都没事,惟独样式和Ajax不正常,。
当咱们调出咱们最好的朋友(IE的F12开发人员工具,或者Firebug和Chrome浏览器开发控制台),就会发现问题是因为咱们在生产环境中改变了网站集的URL结构致使绝对路径不能正常工做。
那么问题就来了,咱们如何能写出一个最佳的URL引用,来替代硬编码或绝对地址。从SDK里一通寻找后,终于找到以下的解决方案:css
JavaScript文件的引用jquery
<asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true"> <Scripts> <asp:ScriptReference Path="<%$SPUrl:~SiteCollection/Style Library/ProjectPortal/js/jquery-1.5.2.js%>"> </asp:ScriptReference> <asp:ScriptReference Path="<%$SPUrl:~SiteCollection/Style Library/ProjectPortal/js/ProjectPortalLoadAfterJquery.js%>"> </asp:ScriptReference> </Scripts> </asp:ScriptManager>
CSS样式文件的引用浏览器
<SharePoint:CssRegistration ID="CssRegistration1" name="<% $SPUrl:~sitecollection/Style Library/ProjectPortal/ppb-styles.css %>" After="corev4.css" runat="server"/>
如上所示,实现这一魔法的关键在于$SPUrl:~sitecollection这个Token,它会随着网站集URL而变。因此保证了整个文件引用路径的正确。服务器
颇有用的一个小技巧吧。框架
参考资料工具
SharePoint 2010 Custom Master Page Tips and Tricks -> JavaScript and StyleSheet Reference网站