Sto iniziando il mio primo progetto con yo + grunt + angular.js.
Ho un servizio che ha bisogno di leggere alcuni dati dal mio server; L'ho costruito utilizzando il servizio angolare $ http. Ho anche creato un servizio web RESTful (implementato in PHP, ma potrebbe essere Java, C, Perl, ..., non importa) che espone un'API per ottenere i dati.
Il server da cui grunt serve la mia ng-app è attualmente (e probabilmente lo sarà sempre) lo stesso da dove viene eseguito il servizio web PHP (da apache).Grunt serve + PHP?
Mi chiedo se questa sia un'architettura accettabile ... Finisco per avere due server distinti (grunt e apache) sullo stesso server ... Inoltre, devo sempre aggiungere un "Access-Control-Allow-Origin" : 127.0.0.1" per l'uscita del mio servizio PHP ... :-(
E 'possibile servire PHP da grugnito, per esempio
UPDATE: parlo di fase di sviluppo ... Ovviamente in produzione non userei il grunt ...
Per spiegarmi meglio, vorrei usare url relativi in $ http() ... Con lo stesso codice sia per lo sviluppo che per il prodotto fasi di produzione ...
Se in produzione posso aspettarmi che funzioni, perché avrò solo un server per l'applicazione angolare distribuita e il servizio PHP, che dovrebbe interpretare PHP in fase di sviluppo, quando l'app Angolare viene servita da Grunt? Grunt stesso? Se sì, come?
UDPATE 2, e una soluzione POSSIBILE: Dopo averci pensato un po 'su questo tema (e anche la lettura this articolo), e non ricevendo risposte soddisfacenti qui, ho deciso userò questo approccio:
- sviluppo
- utilizzare un server "produzione-like" (Apache, lighttpd, ...) per servire pagine PHP reali.
Usa URL assoluti con $ http o $ richiesta per accedere a quel server (distinto da Grunt, che serve le pagine angular.js). Gli URL saranno facilmente configurabili, per richiedere solo un minimo di lavoro (e possibili errori) per passare alla produzione. - Negli script PHP, prima di produrre (JSON), generare sempre un'intestazione appropriata "Access-Control-Allow-Origin"; anche il valore della direttiva sarà facilmente configurabile.
- utilizzare un server "produzione-like" (Apache, lighttpd, ...) per servire pagine PHP reali.
- Produzione
- Deploy angular.js app per lo stesso server su cui viene distribuito il PHP.
- Modificare gli URL e renderli relativi, poiché ora condividono la stessa origine con gli script sul lato client.
- Modificare l'intestazione "Access-Control-Allow-Origin" per consentire solo le richieste locali (o eventualmente rimuovere l'intestazione ...).
sarei molto contento se qualcuno vorrebbe commentare questa soluzione, di contestare, o proporre di migliori ...
Sì u può servire PHP con grugnito ma il vostro meglio utilizzare Apache invece che il costruito nel server livereload/orologio. È comunque possibile eseguire il server grunt per fare in modo che la pagina si aggiorni automaticamente ai salvataggi. Ciò farà risparmiare tempo di implementazione e ti consentirà di utilizzare modrewrite e simili. – shaunhusain
Non userei mai qualcosa usato principalmente per facilitare lo sviluppo per servire un'app di produzione. –
Parlo dello stadio di sviluppo ... Ovviamente in produzione non userei il grunt ... Ma mi chiedo se - per esempio - in $ http() posso usare un url relativo ... Hope I mi sono spiegato ... – MarcoS