Zend Framework中的APPLICATION PATH附加到虚拟主机名

时间:2014-07-21 03:09:11

标签: php zend-framework path relative-path

在我的布局中,当我这样做时

<?php $js = APPLICATION_PATH."/../public/js"; ?>
<script src = <?php echo $js."/signup_layout_js.js"; ?> ></script>

我收到了js错误

http://proj_name/home/aman/Work/proj_name/public/js/signup_layout_js.js

我的APPLICTION_PATH被附加到http://proj_name/,我不希望这样。

但是,如果我这样做,它在http://proj_name/上工作正常但在我转到像http://proj_name/Controller/Action

这样的控制器/动作时会中断
<script src ="./js/signup_layout_js.js"></script>

我该如何纠正这个问题。感谢。

同样在我的index.php中,APPLICATION_PATH是

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

谢谢..

2 个答案:

答案 0 :(得分:0)

您的整个路径是脚本的src的一部分,因为您正在预先设置它。尝试回显APPLICATION_PATH常量的值。这不是在Web应用程序中引用静态文件的正确行为。

在您的情况下,您应该考虑使用Zend Framework的内置headScriptinlineScript视图帮助程序。您不需要自己编写script DOM标记。

答案 1 :(得分:0)

像这样的链接脚本:

<script src = "<?= $this->baseUrl() . '/js/signup_layout_js.js' ?>" ></script>

或者使用headScript helper:

//put this in header
<?= $this->headScript(); ?>

//put this before closing body tag
<?= $this->inlineScript() ?>

//and this anywhere in you code ($this is view object)
$this->headScript()
    ->prependFile($this->baseUrl() . '/js/jquery-1.7.2.min.js')
    ->appendFile($this->baseUrl() . '/js/flying-header.js')
    ->appendScript('
                    var google_conversion_id = 9999999;
                    var google_custom_params = window.google_tag_params;
                    var google_remarketing_only = true;');