2013-08-19 5 views
5

Ich benutze ein eckiges Frontend mit Symfony. Wenn ich meine $routeProvider deklariere, muss ich meine einschließen, weil ich den html 5 Modus auf wahr setze: $locationProvider.html5Mode(true);.Symfony2 mit assetic mit eckigen HTML5-Routen

$routeProvider.when('/app_dev.php/admin', 
        {templateUrl: 'index.html', controller: AdminCtrl}) 
       .when('/app_dev.php/admin/schedule/', 
        {templateUrl: 'schedule.html', controller: ScheduleCtrl}) 
       .otherwise('/app_dev.php/admin'); 
$locationProvider.html5Mode(true); 

vs

$routeProvider.when('/admin', 
        {templateUrl: 'index.html', controller: AdminCtrl}) 
       .when('/admin/schedule/', 
        {templateUrl: 'schedule.html', controller: ScheduleCtrl}) 
       .otherwise('/admin'); 
$locationProvider.html5Mode(true); 

Das Problem ist, ich diese Wege zurück zu erinnern, müssen sich ändern, wenn ich die Produktionsumgebung verwenden möchten.

ich es eine gute Möglichkeit, dies mit assetic vielleicht zu behandeln, wenn ich einen Dump tun, um zu erkennen, die ich für die dev vs prod den Dump tue oder muss ich nur noch schmerzlich erinnern die Pfade für die Ziel envirnment zu ändern?

Dank

Antwort

6

Versuchen Sie, FOSJsRoutingBundle zu verwenden. Mit diesem Paket können Sie Ihr Routing in Ihrem JavaScript-Code verfügbar machen. Das bedeutet, dass Sie URLs mit bestimmten Parametern erzeugen können, wie Sie es mit der Router-Komponente im Symfony2-Core tun können. https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

+0

Ich schaute auf das Modul und scheint eine viel bessere Lösung zu sein, nach dem, was ich lese, ist es mein Verständnis, dass die generierten Routen arbeiten ähnlich wie die Pfadgenerierung in Zweig und Controller. Dies wäre ein viel besserer Weg, um das Problem zu lösen. Ich werde mit diesem Modul einen Test machen und sehen, wie das für mich funktioniert. – nienaber

2

Sie verschiedene Rewrite-Regeln in der .htaccess nutzen könnten. Und dann gitignore die Datei. Also das auf Ihrem localhost wird immer durch app_dev.php und auf prod durch app.php geroutet. Um Ihnen zu helfen, die Routen zu entleeren, hat Symfony2 einen Befehl: http://symfony.com/doc/current/cookbook/configuration/apache_router.html

+0

Das ist eine interessante Lösung. Ich werde es mir ansehen. Derzeit verwende ich für die Entwicklung nicht Apache, sondern den eingebauten PHP-Server und schreibe ein Neuschreibskript, das das im Moment nicht wünschenswert macht. – nienaber

+0

Aber dann müssen Sie Ihre Routen pflegen und .htaccess – Wissem