Php 未使用Zend FW显示静态内容

Php 未使用Zend FW显示静态内容,php,zend-framework,Php,Zend Framework,我试图用Zend框架显示静态内容 当我转到时,会收到一条错误消息 谁能告诉我怎么修理这个吗 提前谢谢 application.ini .... .... resources.layout.layoutPath = APPLICATION_PATH "/layouts" resources.layout.layout = "master" resources.router.routes.home.route = /home resources.router.routes.home.defaults

我试图用Zend框架显示静态内容

当我转到时,会收到一条错误消息

谁能告诉我怎么修理这个吗

提前谢谢

application.ini

....
....
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.layout.layout = "master"
resources.router.routes.home.route = /home
resources.router.routes.home.defaults.module = default           
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = index  
resources.router.routes.static-content.route = /content/:page              
resources.router.routes.static-content.defaults.module = default           
resources.router.routes.static-content.defaults.controller = static-content
resources.router.routes.static-content.defaults.action = display  
应用程序/modules/default/controllers/StaticContentController.php

class StaticContentController extends Zend_Controller_Action
{
    public function init()
    {
    }

    // display static views
    public function displayAction()
    {
      $page = $this->getRequest()->getParam('page');
          if (file_exists($this->view->getScriptPath(null) . "/" . $this->getRequest()->getControllerName() . "/$page." . $this->viewSuffix)) {
        $this->render($page);
      } else {
        throw new Zend_Controller_Action_Exception('Page not found', 404);
      }
    }    
}
应用程序/modules/default/views/scripts/static content/services.phtml

some html
...
...
错误消息

An error occurred
Page not found
Exception information:

Message: Page not found
Stack trace:

#0 /var/www/square/library/Zend/Controller/Action.php(513): StaticContentController->displayAction()
#1 /var/www/square/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('displayAction')
#2 /var/www/square/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#3 /var/www/square/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#4 /var/www/square/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#5 /var/www/square/public/index.php(26): Zend_Application->run()
#6 {main}  

Request Parameters:

array (
  'page' => 'services',
  'module' => 'default',
  'controller' => 'static-content',
  'action' => 'display',
)  
调试文件\u exists()行。您的视图脚本文件位于错误的位置,或者您在错误的位置查找该文件。首先,我要看一看由以下内容构建的实际字符串:

$this->view->getScriptPath(null) . "/" . $this->getRequest()->getControllerName() . "/$page." . $this->viewSuffix

让我们一起进行一些调试:

试着这样做,并像上次一样更新您的问题

 public function displayAction()
    {
      $page = $this->getRequest()->getParam('page');
      var_dump($page);
      var_dump(file_exists($this->view->getScriptPath(null) . "/" . $this->getRequest()->getControllerName() . "/$page." . $this->viewSuffix));
      die("the code will stop here");
          if (file_exists($this->view->getScriptPath(null) . "/" . $this->getRequest()->getControllerName() . "/$page." . $this->viewSuffix)) {
        $this->render($page);
      } else {
        throw new Zend_Controller_Action_Exception('Page not found', 404);
      }
    }    
更新

这很奇怪…
为什么
$page=关于我们
?? 您正在尝试浏览 在您的情况下,它必须是
$page=services

第二个
false
表示
关于我们。phtml
页面不存在 创建一个名为“关于我们的
的空页面。phtml

这个构造“$This->view->getScriptPath()”返回数组时,错误就会消失。您可以像这样使用“$this->view->getScriptPath()[0]”

文件是否存在(…)返回false?@datatoi:我不确定您的意思……很抱歉回复太晚。我不得不去睡觉。无论如何,再次谢谢你。我用你的代码得到了以下信息。字符串(8)“关于我们”bool(false)代码将在此停止抱歉。我有两页关于我们的信息和服务。我已经在application/modules/default/views/scripts/static content中有了一个名为services.phtml和about-us.phtml的页面。您可以尝试添加
var\u dump($this->view->getScriptPath(null)。“/”$this->getRequest()->getControllerName()。“/$page”。$this->viewSuffix)并告诉我itIt的输出输出字符串(8)“服务”字符串(88)”/var/www/square/application/modules/default/views/scripts//static content/services.phtml“bool(false)”代码将在此停止,就是这样!做得好。这个方法实际上返回了获取第一部分所需的数组+1.