Projet Django : hyperliens tronqués

redpsalm

New Member
#1
Bonjour,

Je suis nouveau sur PlanetHoster et sur Django. Je viens de déployer une appli de test « my_site » sur PlanetHoster mais je reste bloqué sur un problème que je peux illustrer dans l'exemple suivant.

Dans le code source , j'ai un lien :

<a href="{% url 'posts-page' %}">All Posts</a>.

Dans le site déployé, il se traduit par :

<a href="/my_sit/posts/">All Posts</a>

où le nom de l'appli « my_site est tronqué en « my_sit » ce qui évidemment aboutit à une page 404.

J'avais le même problème avec les fichiers statiques (css, jpg) ce que j'ai pu résoudre en incluant l'url complète dnas les settings STATIC_URL et MEDIA_URL.

Une idée de ce que j'ai manqué ???
 

PH-Marc-André.B.

Conseiller technique
Membre du personnel
#2
Bonjour,

Je ne suis pas un développeur mais en tant que technicien je vous propose de prendre de mon temps pour vérifier le tout, sans pouvoir vous offrir de garanties

Si ça vous était possible de me contacter en message privé avec plus de détails pour que je puisse tenter de déployer // reproduire le souci dans une application de test de mon bord sur un de mes compte World de test je prendrai du temps pour vérifier le tout.

Finalement si nous trouvions le souci on pourra le partager ici, bien entendu :)
 

marckisscool

Active Member
#3

redpsalm

New Member
#4
Bonjour,

Faite attention à la codification de vos urls car c'est lié au modèle de données avec django (phpcake à quelque chose de similaire aussi dans ce style).
Ici c'est le positionnement de "_" qui pose problème.

Vous trouverez une explication sur la façon de typer l'url: https://developer.mozilla.org/fr/docs/Learn/Server-side/Django/Models
Et pour compléter, un petit tuto très détaillé sur une premiere appli sur django: https://docs.djangoproject.com/fr/4.1/intro/tutorial01/
Bonsoir,

J'ai renommé l'url et le projet en supprimant l'underscore (donc en passant à mysite). J'ai malheureusement toujours le problème (comme dans ce lien : <a href="/mysit/posts/">All Posts</a>). J'ai parcouru le document MDN mais je n'ai pas compris en quoi la présence d'un seul underscore pourrait avoir un impact (dans la mesure où ce n'est pas un double underscore). Les tutos de MDN sont effectivement très bien. J'ai déroulé en entier le projet Local Library (tuto en 11 parties https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django), y compris le déploiement avec Railway qui marche correctement quand appliqué à mon propre exemple.

Un dernier point d'intérêt : le problème disparaît si je rajoute blog/ dans la 2e ligne d'urlpatterns dans le fichier mysite/urls.py (et que j'utilise mon_domaine/mysite/blog au lieu de juste mon_domaine/mysite):

Code:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \
  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
 
Haut