如何在解決方案中新建子網站,Discuz項目子網站技術


在.net版的Discuz項目中,后台管理模塊Discuze.Web.Admin是一個單獨的模塊,但是,打開解決方案的文件夾卻找不到單獨模塊的文件夾存放,而是在Discuz.Web項目里的admin文件夾里。

經過分析,原來管理員模塊是一個子網站,只是把網站建立在了Discuz.Web文件夾中,最后,在Discuz.Web項目包含在內就行了。子網站到底有什么好處了,很簡單,就是方便管理,獨立開發,當這個模塊有問題時,單獨編譯這個模塊,然后重新上傳頁面文件和DLL到主網站的Bin文件夾即可,完全不受其它影響。

官方的說法:管理模塊是獨立的模塊,方便管理等...(具體還待驗證——囧)

 Discuz.Web.Admin是一個類庫,不是一個web應用程序,那就神了,類庫在添加aspx頁面,是沒有全自動,只能是自己手工輸入和關聯頁面設計文件(到現在還沒研究出官方是如何添加的)。且在Discuz.Web項目的admin文件夾中,只是包含aspx文件,沒有包含cs文件,這樣的做法是,當發布網站時,自動發布Discuz.Web.Admin的項目(最后還是沒搞明白是如何只包含aspx文件不包含cs文件的)。

子網站的優點是方便管理,模塊獨立,互補干擾。缺點:不能使用和包含子網站的Web.config和Global.asax這些全局文件,只能是共用主網站的,但是你可以在別的文件夾新建,單獨調用就可以。

因為項目基於VS08開發的,所以有一些開發工具的特性無法考證。(原因是我機器沒裝08-囧)

以上是對Discuz.net項目的子網站新建技術的一點分析。

下面,我們來使用VS2010新建一個子網站來實戰一下,在10我改變了做法,子網站不用類庫去實現,而是用web應用程序去實現,好處是方便新建aspx頁面,無需手動創建,且類庫全部引用了。

首先,新建一個名為SiteCollection的Web應用程序

然后在新建一個名為Site的子網站Web應用程序,注意保存項目的路徑,必須保存在SiteCollection的根目錄里。

 

在SiteCollection項目里添加Site的引用

最后在SiteCollection項目點擊顯示所有文件,這里我就不用Discuz的做法,我不包含文件進去,因為包含進去,每次新建頁面時都要包含在主項目里,非常不方便,我何必不包含了,直接在發布子網站的時候拷貝到主網站的目錄里,方便,省事。

應為我這邊是新建的VS10自帶的示例,所以會包含Web.config和Global.asax文件,我把它干掉了。不然會報錯。

運行測試一下:

注意URL的路徑:

成功了。

下面我們來試下,調用主網站的Web.config的內容:

在Site的子網站的Default.aspx.cs文件中寫

也成功了:

切記,網頁查看時一定要在主站點里進行調試查看。

最后,如果Site的子網站項目有改動的地方,直接選擇Site項目編譯發布,得到dll和頁面文件,上傳到主網站相應的目錄即可。非常的方便。

最后,附上項目的例子:(鏈接: https://pan.baidu.com/s/1c2s4los 密碼: 8845)

 以上是個人的見解,錯誤也是有滴,最后還要謝謝大家的支持。囧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM