是否可以在cms之外创建一个页面?
例如:
我想使用jquery .load()将段加载到当前页面。
是否可以在主题文件夹中的某处创建一个html或.ss文件,例如:self-contained-page.html所以如果我访问www.domain.com/self-contained-paged.html我将能够访问此页面。
答案 0 :(得分:2)
虽然您当然可以提供静态文件,但您也可以“ajaxify”部分页面。不确定这是不是你想做什么,但是如果其他人试图做类似的事情。
虽然您可以使用某些精美的工具,例如pjax或history.js,但您也可以手动执行此操作。我最近用SS 2.4完成了这个,但SS 3应该非常相似:
在您的控制器中,添加一个公共功能,以便您可以通过/ yourpage / load(或任何您想要的名称)访问它:
public function load(){
return $this->renderWith(array('AjaxLoad'));
}
在您的模板/布局中添加一个文件AjaxLoad.ss。
.load()
提供该页面,只需在文件内添加内容即可。<% include PageSnippet %>
。然后只需在 templates / Include / PageSnippet.ss 中定义您的内容。您可以在http://www.contentaward.at/content-lab-vienna/608#details看到它的实际效果(点击页面底部的小图片)。希望这说清楚。
答案 1 :(得分:1)
从silverstripe安装中的任何位置提供静态html文件都没有问题,只需注意始终将文件扩展名添加到您的URL,否则silverstripe的url路由(使用mod_rewrite,请参阅.htaccess文件)将启动。
还要注意始终使用文件的完整路径,因此如果您将文件放在'themes / mytheme / test.html'中,则网址将为“http://www.domain.com/themes/mytheme/test.html”
答案 2 :(得分:0)
您当然可以像在css文件中一样引用主题文件夹中的html文件,例如: :
www.domain.com/themes/yourtheme/self-contained-paged.html
如果您不介意在主题文件夹中没有它,您也可以将它放入根目录 或者您可以修改.htaccess并应用一些mod_rewrite或重定向规则来指向主题文件夹。
如果您想使用.ss文件,则可能必须使用CMS页面。