2017-07-26 37 views
0

我們啓用了Kentio CI,並未考慮禁用它。我的情況是,我希望在部署在服務器上的Kentico網站的所有頁面上都啓用SSL,但希望在本地開發時禁用SSL。如何從Kentico 10中的CI中排除根頁面?

我知道SSL可以通過轉到文檔根目錄設置,然後將「Require SSL」無線電設置爲「Yes」來啓用。這工作很好,正是我想要的。

問題是,由於本地我們將此設置設置爲「否」,並且我們啓用了配置項,所以當我們部署到服務器時,本地設置將覆蓋服務器,並且服務器根頁面將設置設置回「否「我們必須手動切換它。

我知道有很多方法可以包括通過修改repository.config文件,並根據文檔here排除在CI過程的對象,也可以從CI過程中排除個別objcects。特別值得注意的是文檔中的這一行:

要排除頁面(cms.document對象類型),請使用別名路徑值而不是代碼名稱。這基於它們在內容樹中的位置來標識頁面。

我試圖排除與下面的代碼的網站的根頁repository.config

<ObjectFilters> 
    <ExcludedCodeNames ObjectType="cms.document">/</ExcludedCodeNames> 
</ObjectFilters> 

沒有這一行的根文件的任何修改都被標註爲通過Git的修改,預計但在加入這一行的Git標記爲刪除的文檔,如下截圖:

Git status

也許這有望BEHA威爾,我只是不知道。

我想知道如何從CI中排除個別頁面。任何幫助表示讚賞。

+3

爲什麼你不使用私有證書在IIS本地啓用SSL?這將很容易解決問題,不需要任何愚蠢的CI配置。此外,它還允許您在本地測試事情,以確保您不會因HTTPS與HTTP發生錯誤。 –

+0

@BrendenKehren自從發佈這個,這正是我所做的,但仍然想知道如果上述是可能的只是爲了學習的緣故。 – tkha007

回答

2

屏幕截圖上的內容是預期的行爲 - 但這是你完全不想做的事情。 CI恢復首先刪除所有文檔和對象,然後導入CI文件夾中的內容。刪除根文檔將有效地防止導入任何其他文檔,因爲它不會有「父」。即使情況並非如此,您將不得不手動傳輸根文檔的所有更改。

最佳實踐是在Brenden建議的開發機器上設置SSL。

另一種選擇是使用DocumentEvents並根據某些標準(例如當前域名)更改SSL設置。但是這會帶來不必要的錯誤傾向。

+0

感謝您的解釋。由於所獲得的知識將其標記爲答案。我已經在本地啓用了SSL,並將繼續前進。 – tkha007

2

使用專用證書在IIS中本地啓用SSL。這將很容易解決問題,不需要任何高級的Kentico CI配置。此外,它還允許您在本地進行測試,以確保您在推廣到其他環境時不會因HTTPS與HTTP發生錯誤。