在CakePHP中存储平面文件的位置?

时间:2013-01-29 15:37:24

标签: templates cakephp template-engine flat-file

我正在构建一个允许用户浏览html模板的应用程序。 html模板将显示在预览区域中(源代码将被混淆),虽然模板将包含内联CSS / JS,但也会有奇数链接图像资源。

出于这个原因,我认为最好将它们存储为文件夹库,并从我的服务器检索平面文件以进行显示,而不是将HTML存储在数据库中并且必须组织外部资产。

我的问题是:CakePHP目录结构中的哪个位置是这些文件的最佳位置?我宁愿把它们放在webroot上面,我在想 View

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:1)

为什么当它们是可公开查看的资产时,您是否希望将它们存储在webroot之上?我的直觉是他们真的属于webroot或数据库。我会挑选一个或另一个。

如果你必须将它们存储在webroot之上,我想最好的办法就是将它们存储为元素。

app/View/Elements/your_templates/

这样,您可以使用以下方法将其加载到View的预览区域中:

echo $this->element('your_templates/template');

修改

老实说,元素的建议不是我推荐的,我只是想为你提供不同的建议。这将是非常糟糕的做法,我认为它将比它的价值更加混乱和有问题。

对于图像文件,无论您选择存储HTML模板的位置,都将它们放在webroot中。无论如何,您无法阻止人们在浏览器中查看图像时下载图像。

答案 1 :(得分:1)

我建议您保留所有 out-of-cakephp-framework 相关文件,存储在webroot下。

我的建议是以下目录结构,用于保存html模板以及css和js相关文件。

/webroot/files/templates/<template-project-name>/<the-actual-file>.html

任何外部css,都将在 /webroot/css/templates/<template-project-name>/<the-actual-css>.css

JS库将在 /webroot/js/templates/<template-project-name>/<the-actual-js>.js

使用单独呈现的单独布局文件(称为preview_layout.ctp) 模板文件原样。

希望有所帮助