【问题标题】:APPLICATION PATH in Zend Framework getting appended to virtual host nameZend 框架中的应用程序路径被附加到虚拟主机名
【发布时间】:2014-07-21 03:09:10
【问题描述】:

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

<?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'));

谢谢..

【问题讨论】:

    标签: php zend-framework path relative-path


    【解决方案1】:

    这样的链接脚本:

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

    或者使用 headScript 助手:

    //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;');
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-30
        • 1970-01-01
        • 1970-01-01
        • 2012-11-17
        • 1970-01-01
        • 2020-09-28
        • 2012-10-28
        • 2014-01-15
        • 2015-03-06
        相关资源
        最近更新 更多