2014-05-05 73 views
1

我花了最近两个晚上试图弄清楚这一点。在Zend Framework中链接index.php和.phtml文件中的样式表

我在我的Zend应用程序中将外部样式表应用到每个页面时出现问题。问题是我的外部样式表或者应用于位于公共文件夹中的index.php文件,或者应用程序文件夹内创建的.phtml视图页面。

这里是我已经把bootstrap.php中里面的代码:

$视图 - > headLink() - > appendStylesheet( 'CSS/bootstrap.min.css');

在layout.phtml我已经简单地称为像这样的样式表:

回声$这个 - > headLink();

我已经试过'$ this-> baseUrl()'以及在'css'之前添加样式表但没有用'CSS'。

当我把一个“/”的“CSS”,我的index.php也停止定位文件,而是看它在以下位置前: http://localhost/css/bootstrap.min.css

这些方法很好地工作,当我运行应用程序(index.php)在公用文件夹中但应用程序文件夹中的所有其他.phtml视图文件及其控制器未找到附加的样式表。

当我查看输出,浏览器查找下列路径,样式表时,在这种情况下,我加载“注册”页面: http://localhost/php_project/public/signup/css/bootstrap.min.css

我不明白为什么PHP是在css文件夹前添加一个额外的'注册'文件夹。

到目前为止,我一直无法找到网上任何地方的答案。我认为不应该在整个应用程序中创建相同样式表的多个文件。

非常感谢您的帮助。

回答

0

我通常在布局文件中(而不是在引导),像这样添加一个样式表:

$this->headLink()->appendStylesheet($this->baseUrl('css/bootstrap.min.css')); 
+0

Hi.Thank大家的响应。我发现了一个我在网络上没有找到的解决方案,所以我担心它可能会带来安全风险。我保存了上面的代码,如下所示$ this-> headLink() - > appendStylesheet($ this-> baseUrl('php-project/public/css/bootstrap.min.css')); –

+0

嗯,如果这对你有用,那么你有'baseUrl'的问题。 'baseUrl'应该给你路径'/ php-project/public /'。如果您对此路径进行硬编码,则在另一台服务器上运行此项目时会出现问题。一个更好的解决方法是在配置中对baseUrl进行硬编码。这样你只需要在一个地方改变它。看看如何:http://stackoverflow.com/a/1332872/1948627 – bitWorking

相关问题