Autoriser uniquement les chemins relatifs

Je crois que c’est un problème avec Apache .htaccess , et peut-être pas. Peut-être que je regarde le problème sous le mauvais angle, et ne peut donc pas trouver la solution appropriée.

Je construis une application web + une application mobile hybride. Je voudrais partager exactement le même code de base, sans avoir à modifier quoi que ce soit manuellement pour déployer mon application sur Android ou iOS, sinon le processus de déploiement sera piraté et douloureux. Ce que je veux, c’est prendre le repository de l’application Web, le placer dans la boîte de Cordova (vous êtes un homme sale) et il le déploiera avec succès.

Maintenant, un problème est que Cordova nécessite des chemins relatifs pour fonctionner correctement. Par exemple, voici comment inclure mon fichier require.js :

   

Cela fonctionne bien sur l’application hybride. Cela fonctionne très bien également sur la plupart des URL de l’application Web, celles ayant le schéma suivant:

 domain.com/view_name 

Cependant, c’est ce qui se passe lorsque je charge l’application depuis une vue qui reçoit des parameters URI:

 domain.com/view_name/6iwO4NyJqy 

Les chemins relatifs ne sont plus résolus correctement. Je reçois une 404 error raison de chemins impropres. Par exemple, require.js comment est résolu le fichier require.js ci-dessus:

 http://domain.com/view_name/library/js/libs/require.js 

Le bit view_name est la mauvaise partie. Cela ne devrait pas être là. Sans elle, le fichier serait trouvé avec succès.

Ceci est mon fichier .htaccess :

 RewriteEngine on RewriteBase / # REROUTING EVERYTHING TO index.html RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d [OR] RewriteCond %{REQUEST_URI} ^/$ RewriteRule .* /index.html [NC,L,QSA] 

Existe-t-il un moyen de définir mon fichier .htaccess , de sorte que je n’ai pas besoin de modifier les chemins relatifs dans l’application et que je puisse toujours les résoudre correctement?

Toute suggestion est la bienvenue.

Cela n’est pas dû à votre règle de réécriture, mais à votre utilisation de chemins relatifs.

Vous pouvez append ceci juste en dessous de la section du code HTML de votre page:

  

afin que chaque URL relative soit résolue à partir de cette URL de base et non à partir de l’URL de la page en cours.