一般在咱們的項目中,都會涉及到母版頁的定製。而且必不可少的,須要配合以一套本身的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網站