如何从zend应用程序的布局文件夹动态添加样式

时间:2011-05-13 12:58:49

标签: zend-framework

我的所有样式都位于应用程序布局文件夹下的根目录后面。我不想将我的styleS保存在公共文件夹中。

如何使用以下命令在布局中动态读取它们?

$styleFile = "greenish.css"; // from database
$this->headLink()->appendStylesheet(APPLICATION_PATH . 'modules/frontManagement/layouts/styles/'.$styleFile);

任何想法?

3 个答案:

答案 0 :(得分:0)

为什么不想将样式/脚本保存在公用文件夹中?这就是你应该保留它们的地方,因为,因为它们的公共资源。

即使您将它们保存在其他地方,您仍然需要阅读它并将样式应用到您的页面。这意味着你实际上无法隐藏它(如果这是你的意图)

答案 1 :(得分:0)

我认为您需要HeadStyle视图助手,其中包含文档头中的样式表内联。基本用法是这样的:

$styleFile = "greenish.css"; // from database
$style = file_get_contents(APPLICATION_PATH . 'modules/frontManagement/layouts/styles/'.$styleFile);
$this->headStyle()->appendStyle($style);

答案 2 :(得分:0)

如果您想避免使用内联样式并且仅使用headlink()但是将内容安全地隐藏在Web根目录之外或数据库中,那么听起来您必须headLink()来一个动态的服务器端脚本,它接受客户标识符,然后提供客户特定的CSS,并带有mime类型的标头。

使用聪明的缓存标头和网址命名,您甚至可以在浏览器端缓存此缓存,就像您使用静态的完全公共CSS资源一样。

但是我会告诉你,这对我来说听起来有些过分。只要您只向客户“XXX”发送stylesheet_XXX.css,谁会关心所有其他款式是否“可访问”?不过,如果这是你的要求,那么我认为你可以用上面的方法来管理它。