2016-08-09 6 views
0

habe ich eine CakePHP-Installation auf einem lokalen wamp in:Wie ich auf CakePHP Installationspfad herauszufinden 3

c:\wwww\appname 

und ich habe einen Countdown-Skript in einer Ansicht:

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

Wenn ich angeben/users/addieren Sie in der expiratorUrl alles funktioniert in Live-Umgebung, aber in meiner lokalen Umgebung funktioniert es nicht, weil die App unter Appname installiert ist.

Wie kann der Code geändert werden, damit der Ajax-Aufruf in beiden Umgebungen funktioniert?

Antwort

1

Der korrekte Weg wäre die Verwendung des Routers zum Generieren der URL, die eine URL in Bezug auf den Basispfad/URL erstellen würde.

<?php $url = \Cake\Routing\Router::url(['controller' => 'Users', 'action' => 'add']); ?> 

var expiryUrl = <?= json_encode($url) ?>; 
$("#countdown").countdown({until: austDay, format: 'HMS', expiryUrl: expiryUrl}); 

Siehe auch

+0

Seltsam, wenn ich verwenden: \ Kuchen \ Routing \ Router :: url ([ 'controller' => 'Benutzer', ' action '=>' add ']) es erzeugt "\/ckfaucet \", wenn ich \ Cake \ Routing \ Router :: url benutze ([' controller '=>' User ',' action '=>' add ']) es generiert var verfallurl = "\/ckfaucet \/user \/add" (aber es ist falsch, ich brauche/ckfaucet/users/add ... vielleicht habe ich etwas falsch gemacht beim Backen? – Sunchaser

+0

Ich akzeptierte Ihre Antwort, ich hatte eine Router-Regel wie folgt: $ routes -> connect ('/', ['controller' => 'Benutzer', 'action' => 'add']); Vielen Dank! – Sunchaser