多外觀網站解決方案討論

來源:互聯網
上載者:User
需求:
    客戶需要網站支援多種外觀, 包括顏色, 圖片以及某些頁面的結構和功能. 網站的大部分內容布局和功能是一樣的,但是某些頁面(首頁,masterpage)的布局和功能內容每個外觀都不一樣(光看首頁的話可能會當成不同的網站,或許要的就是這種效果 :p)。 當使用者訪問網站時根據不同的網域名稱顯示不同的外觀。

思路:
    使用asp.net theme進行css的選擇實現不同的主題。 使用url rewriting重定位某些頁面達到不同外觀有不同布局功能的目的。 通過運行時設定頁面的masterPage改變外觀的布局。
  
實現方法
    1. 在web.config中配置類似如下資訊
       <portals>
          <add name="Portal1" domain="www.portal1.com">
             <masterPage url="~/MasterPage/portal1.master" />
             <theme default="~/App_Theme/portal1" />     
          </add>
          <add name="Portal2" domain="www.portal2.com">
             <masterPage url="~/MasterPage/portal2.master" />
             <theme default="~/App_Theme/portal2" />     
             <pages>
                   <add source="~/default.aspx" target="~/default-portal2.aspx" />
             </pages>
          </add>
       </portals>
    2. 使用httpModule根據Request.Url判斷使用那個外觀,檢查請求的頁面是否在<pages>進行了配置,對配置的頁面進行url rewriting.
    3. 每個頁面繼承PageBase, PageBase中在PreInit事件中根據使用的外觀決定theme和masterPage.
    4. 使用adapter替換HtmlForm,對<form>中的action進行重寫
注意事項:
    重新導向的頁面需要在相同的目錄下,否則頁面中的css,image,js引用路徑會出現問題。

問題:
    感覺實現了需求,但是並不優美。 theme的切換提高了對html,css設計的要求, 由於需要將重新導向的頁面放在一起,當外觀比較多的時候,整個網站結構會比較混亂。不知道有沒有更好的解決方案.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.