【问题标题】:How i find out installation path on Cakephp 3我如何在 Cakephp 3 上找到安装路径
【发布时间】:2016-08-09 16:04:47
【问题描述】:

我在本地 wamp 上安装了 Cakephp:

c:\wwww\appname

我在视图中有一个倒计时脚本:

<script type="text/javascript">
$(document).ready(function()
{   
    var austDay = new Date();
    austDay = new Date(<?= $nextclaimtime * 1000;?>);
    $("#countdown").countdown({until: austDay, format: 'HMS', expiryUrl: "/users/add"});
});
</script>

如果我在 expiryUrl 中指定 /users/add 一切都可以在实时环境中运行,但在我的本地环境中它不起作用,因为该应用程序安装在 appname 下。

更改代码以使 Ajax 调用在两种环境中都能正常工作的正确方法是什么?

【问题讨论】:

    标签: ajax cakephp-3.x installation-path


    【解决方案1】:

    正确的方法是使用路由器生成 URL,这将创建一个相对于基本路径/URL 的 URL。

    <?php $url = \Cake\Routing\Router::url(['controller' => 'Users', 'action' => 'add']); ?>
    
    var expiryUrl = <?= json_encode($url) ?>;
    $("#countdown").countdown({until: austDay, format: 'HMS', expiryUrl: expiryUrl});
    

    另见

    【讨论】:

    • 奇怪,如果我使用: \Cake\Routing\Router::url(['controller' => 'Users', 'action' => 'add']) 它会生成 "\/ckfaucet \",如果我使用 \Cake\Routing\Router::url(['controller' => 'User', 'action' => 'add']) 它会生成 var expiryurl = "\/ckfaucet\/user\/添加”(但它错了,我需要 /ckfaucet/users/add...也许我在烘焙时做错了什么?
    • 我接受了你的回答,我有一个这样的路由器规则: $routes -> connect('/', ['controller' => 'Users', 'action' => 'add'] );谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多