Bonjour,

Je cherche à faire tourner une application web prduite par le framework perl dancer2.
La commande "perl dancer2 -a myapp" crée le squelette d'un site web minimal, avec un script dispatch.fcgi dans le sous-dossier
public pour le fonctionnement en fcgi.

1) Si je lance cette commande ("perl dancer2 -a myapp") en tant que root dans le dossier /var/www, et que je configure un virtualhost adapté à cet emplacement (avec par ex comme nom de serveur "myapp.fr), en utilisant le module fcgi d'apache, la page d'acceuil s'affiche correctement, avec les 2 images qui y sont incluses si je demande dans un navigateur :
myapp.fr

2) Si je lance cette commande dans le dossier /home/user/public_html, et que je place la directive
UserDir public_html
dans le fichier apache2.conf, alors la page d'accueil s'affiche également, mais les 2 images présentes sur la pages ne sont pas visibles, si je demande dans le navigateur :
localhost/~user/public_html/myapp/public/dispatch.fcgi

Il y a un problème de chemins de fichiers, comme s'il cherchait les images dans /var/www/images, alors qu'elles sont dans /home/user/myapp/public/images.
Il s'agit peut-être d'un problème au niveau des règles de ré-écriture, avec la directive RewriteRule, mais je ne maîtrise pas bien le sujet.

Dans le fichier /var/log/apache2/access.log les messages liés à cette connexion au serveur sont :

127.0.0.1 - - [21/Mar/2016:21:51:18 +0100] "GET /~chris/myapp/public/dispatch.fcgi HTTP/1.1" 200 2030 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
127.0.0.1 - - [21/Mar/2016:21:51:19 +0100] "GET /~chris/myapp/public/dispatch.fcgi/css/style.css HTTP/1.1" 200 1216 "http://localhost/~chris/myapp/public/dispatch.fcgi" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
127.0.0.1 - - [21/Mar/2016:21:51:19 +0100] "GET /images/perldancer-bg.jpg HTTP/1.1" 404 509 "http://localhost/~chris/myapp/public/dispatch.fcgi/css/style.css" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
127.0.0.1 - - [21/Mar/2016:21:51:19 +0100] "GET /images/perldancer.jpg HTTP/1.1" 404 509 "http://localhost/~chris/myapp/public/dispatch.fcgi/css/style.css" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
Dans le fichier /var/log/apache2/error.log on trouve :

[myapp:7596] core @2016-03-21 21:51:19> looking for get in /usr/local/share/perl/5.10.1/Plack/Middleware/RemoveRedundantBody.pm l. 14
[myapp:7596] core @2016-03-21 21:51:19> Entering hook core.app.before_request in /usr/local/share/perl/5.10.1/Dancer2/Core/App.pm l. 1232
[myapp:7596] core @2016-03-21 21:51:19> Entering hook core.app.after_request in /usr/local/share/perl/5.10.1/Dancer2/Core/App.pm l. 1189
[Mon Mar 21 21:51:19 2016] [error] [client 127.0.0.1] File does not exist: /var/www/images, referer: http://localhost/~chris/myapp/public.../css/style.css
[Mon Mar 21 21:51:19 2016] [error] [client 127.0.0.1] File does not exist: /var/www/images, referer: http://localhost/~chris/myapp/public.../css/style.css
Je ne comprends pas pourquoi apache cherche les images dans /var/www ? Les chemins des fichiers recherchés sont écrits dans le fichier style.css avec les chemins relatifs :
/images/perldancer-bg.jpg
/images/perldancer.jpg

Krys006