Bonjour,

J'ai réalisé une petite application en VueJS qui utilise Vue Router. Une fois buildée, le routing fonctionne si je lance l'application sur le built-in serveur de PHP (ex. php -S localhost:8888) mais si je la lance sur serveur MAMP je n'ai accès qu'à la racine de l'app. Les autres URL renvoient des 404.

Y a-t-il un router intégré à MAMP qui prévaut sur Vue router ?

Ce que je veux

Lancer une app Vue buildée intégrant Vue router sur un serveur MAMP.

Ce que j'obtiens

Excepté pour l'url racine, j'obtiens des erreurs 404.

Merci de votre aide.

3 réponses


Hello,

En vrai si passer par la commande php fonctionne pourquoi vouloir utilisé mamp ? (perso je préconise de ne pas utilisé ce genre d'outils qui ne sont pas utile je trouve perso)

La différence entre les 2 c'est que le serveur php quand la page n'est pas connu il redirect vers index.php quand ça existe mais je ne suis pas sur pour le apache dans MAMP.

Bonjour,

Comme précisé dans la doc, le serveur intégré de PHP n'est pas fait pour la production. Notamment, il est single thread. Il ne peut traiter qu'une seule requête à la fois, ce qui peut-être très embêtant dans certains cas.

Mais j'ai trouvé la solution : il suffit d'ajouter un .htaccess à la racine de l'app, comme indiqué dans la doc de Vue Router :

<IfModule mod_negotiation.c>
  Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>
Comme précisé dans la doc, le serveur intégré de PHP n'est pas fait pour la production.
Notamment, il est single thread. Il ne peut traiter qu'une seule requête à la fois,
ce qui peut-être très embêtant dans certains cas.

Et mamp ne l'es pas non plus :D

Ce qui est prod friendly c'est une config Apache classique. D'ailleurs j'éviterai le htaccess en prod aussi. La config indiqué dans la doc est à mettre directement dans une config de vhost Apache