【问题标题】:How to set correct path to public folder in zend framework如何在zend框架中设置公用文件夹的正确路径
【发布时间】:2012-09-04 09:16:42
【问题描述】:

Zend 框架对我来说是全新的,但我遇到了问题。可能很容易修复,但我在 Google 中找不到任何解决方案。

我不知道如何设置公用文件夹的正确路径。我使用 xampp 作为虚拟主机,我当前的完整路径如下所示:

localhost/zf_project/public/controller/action

现在,当我使用表单和链接时,它会将我移动到 localhost/controller/action,所以目前我正在到处添加:

$front = Zend_Controller_Front::getInstance();  
$form->setAction($front->getBaseUrl().'/controller/action');

可能有最简单的方法来设置公用文件夹的默认路径。 我尝试在我的 .ini 应用程序文件中添加:

resources.frontController.baseurl = "/zf_project/public"

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    ZF 可以确定您的基本 URL,而无需在您的配置文件或引导程序中设置它。

    从视图中,您可以使用 baseUrl 帮助器构建带有基本 URL 的链接。

    // resolves to localhost/zf_project/public/controller/action
    $this->form->setAction($this->baseUrl('controller/action'));
    
    // or
    
    // resolves to localhost/zf_project/public/images/icons/online.png
    <img src="<?php echo $this->baseUrl('images/icons/online.png') ?>" />
    

    您可以使用 url 帮助器构建 URL。这会根据配置的路由构造您的 URL。

    // localhost/zf_project/public/controller/action/id/1234
    echo $this->url(array('controller' => 'controller',
                          'action'     => 'action',
                          'module'     => 'default', 
                          'id'         => 1234));
    

    您也可以从控制器中使用这些帮助器中的任何一个,只需在要调用它们时指定视图对象:

    $this->view->baseUrl();
    $this->view->url($params);
    

    几乎在我引用图像、javascript、css 文件或静态内容的任何地方,我都使用baseUrl 帮助程序。每当我想链接到我的应用程序中的其他控制器或操作时,我都会使用 url 帮助器,因为它使用您的路由构造有效的 URL。这样,如果您更改 URL 结构,url 助手将反映更改,您不必修改现有代码。

    【讨论】:

    • 谢谢!这正是我想要的
    【解决方案2】:

    您需要修改您的虚拟主机文件。

    标准做法将 Zend 应用程序放在基础根目录上。

    在您的 XAMP 中(我不是 Windows,但会尝试一下),您应该有一个文件夹:/xampp/apache2/conf,在那里您会找到 apache2.conf 或 httpd.conf,它们中的任何一个。打开它们,你应该会在某个地方找到DocumentRoot,使用你的/public 文件夹导航。

    或者,创建一个新的virtual host

    另外,我找到了this good tutorial,一步一步来(或者跳到第3步)

    希望对你有帮助:)

    问题?

    【讨论】:

    • 我不确定将应用程序放在文档根目录中的标准做法,至少我从未在任何地方看到过这种情况。当然,依赖它是 IMO 的坏习惯。
    • 我说,Document Root 因为他的主机是 localhost。但是,我指出了一个快速的 Google 链接,我发现即使该作者也希望 zf 应用程序位于自定义主机(如果不是本地主机)上,而不是成为 /zf_project/public/ 的一部分。
    • @KarmicDice 谢谢你也帮助了我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多