是否可以在cms之外創建頁面?SilverStripe 3:在CMS之外加載/創建頁面
例如:
我想使用jquery .load()到段加載到當前頁面。
是否可以在主題文件夾中的某個位置創建html或.ss文件,例如:self-contained-page.html,如果我然後訪問www.domain.com/self-contained-paged.html我將能夠訪問此頁面。
是否可以在cms之外創建頁面?SilverStripe 3:在CMS之外加載/創建頁面
例如:
我想使用jquery .load()到段加載到當前頁面。
是否可以在主題文件夾中的某個位置創建html或.ss文件,例如:self-contained-page.html,如果我然後訪問www.domain.com/self-contained-paged.html我將能夠訪問此頁面。
從銀河系安裝中的任何地方提供靜態html文件都沒有問題,只需要注意總是將文件擴展名添加到您的網址,否則銀河系的URL路由(使用mod_rewrite,請參閱.htaccess文件)將啓動。
也注意到一直使用的完整路徑的文件,所以如果你放置你的文件「主題/ mytheme的/ test.html文件」的網址爲「http://www.domain.com/themes/mytheme/test.html」
你當然也可以參考主題文件夾中的html文件就像使用css文件fe做的一樣:
www.domain.com/themes/yourtheme/self-contained-paged.html
如果你不介意不擁有它的主題文件夾你也可以把它放到根目錄。
或者您可以修改.htaccess並應用一些mod_rewrite或重定向規則指向主題文件夾。
如果您想使用.ss文件,您可能必須使用CMS頁面。
儘管您當然可以提供靜態文件,但您也可以「調整」頁面的某些部分。不知道這是你想做什麼,但如果別人正在嘗試做類似的事情。
雖然您可以使用一些奇特的工具,如pjax或history.js,但您也可以手動執行此操作。我最近用SS 2.4做了這個,但是SS 3應該是非常類似的:
在你的控制器中添加一個公共函數,以便你可以通過/ yourpage/load(或者你想調用它的任何東西)來訪問它:
public function load(){
return $this->renderWith(array('AjaxLoad'));
}
在您的templates/Layout中添加一個文件AjaxLoad.ss。
<% include PageSnippet %>
。然後簡單地在模板/ Include/PageSnippet.ss中定義您的內容。你可以看到它在行動http://www.contentaward.at/content-lab-vienna/608#details(點擊頁面底部的小圖像)。希望這個清楚。
漂亮的工具提示懸停效果在你的例子;) – schellmax 2013-03-06 07:02:11
它總是最不重要的東西,得到最多的關注;) – xeraa 2013-03-06 13:05:23
...因爲它_does_有所作爲! – schellmax 2013-03-06 13:12:31