J'ai installé wamp 3.0 (sous windows 10) et défini 2 virtualhosts: gescomptes.fe et dojo.package
gescomptes.fe contient une application Dojo (javascript) appelée gescomptes et dojo.package contient le package du framework Dojo. gescomptes doit donc requéter en permanence dans la bibliothèque de scripts de dojo.package. C'est là que le bât blesse puisque j'obtiens une succession d'erreurs du même type dont une est fournie, à titre d'exemple, ci-dessous. Comme le montre la copie du httpd-vhosts.conf j'ai tenté de pallier le dysfonctionnement avec les directives :
SetEnvIf Origin .... Header set Access-Control-Allow-Origin ....
Mais le défaut persiste. Mauvais paramétrage de ces directives de ma part ? Manque une ou plusieurs directives ?
Pouvez vous quelque chose pour moi ?
Copie d'une des erreurs: XMLHttpRequest cannot load [dojo.package]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://gescomptes.fe' is therefore not allowed access.
Copie du httpd-vhosts.conf: <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "C:/wamp/www" <Directory "C:/wamp/www/"> Options Indexes FollowSymLinks MultiViews AllowOverride all Require local </Directory> </VirtualHost>
<VirtualHost *:80> ServerName gescomptes.fe ServerAlias www.gescomptes.fe DocumentRoot "C:/mon_site_gescomptes/fe/www" <Directory "C:/mon_site_gescomptes/fe/www/"> AllowOverride All Require all granted <IfModule mod_headers> SetEnv Origin "https?://(www\.)?(dojo.package\.fe)$" AccessControlAllowOrigin=$1 Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin </IfModule> </Directory> php_flag display_errors on php_flag log_errors On php_value max_upload_size 40M php_value max_execution_time 60 php_value error_log "c:/wamp/logs/mon_site_gescomptes_phperror.log" </VirtualHost>
<VirtualHost *:80> ServerName dojo.package ServerAlias www.dojo.package DocumentRoot "C:/mon_site_gescomptes/Dojo-Packages/dojo-release-1.10.4-src/www" <Directory "C:/mon_site_gescomptes/Dojo-Packages/dojo-release-1.10.4-src/www/"> AllowOverride All Require all granted <IfModule mod_headers> SetEnvIf Origin "https?://(www\.)?(gescomptes\.fe)$" AccessControlAllowOrigin=$1 Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin </IfModule> </Directory> php_flag display_errors On php_flag log_errors On php_value max_upload_size 40M php_value max_execution_time 60 php_value error_log "c:/wamp/logs/mon_site_gescomptes_phperror.log" </VirtualHost>
<VirtualHost *:80> ServerName dojoFondamentaux ServerAlias www.dojoFondamentaux DocumentRoot "C:/mon_site_gescomptes/dojoFondamentaux/www" <Directory "C:/mon_site_gescomptes/dojoFondamentaux/www/"> AllowOverride All Require all granted </Directory> php_flag display_errors On php_flag log_errors On php_value max_upload_size 40M php_value max_execution_time 60 php_value error_log "c:/wamp/logs/mon_site_gescomptes_phperror.log" </VirtualHost>
> Dojo. gescomptes doit donc requéter en permanence dans la bibliothèque de scripts de dojo.package. La bibliothèque de scripts doit être dans le même site que celui qui appelle, dans des dossiers dittérents.
Votre application ne mentionne-t-elle pas comment elle doit être installée et où doit être la bibliothèque ?
D'après le peu que j'ai pu voir à ce sujet, vous devriez, dans un seul site local, avoir une structure du type : site/index.html ou index.php site/js/ site/lib/ site/dojo/ etc.
> D'après le peu que j'ai pu voir à ce sujet, vous devriez, dans un seul site local, avoir une structure du type : > site/index.html ou index.php > site/js/ > site/lib/ > site/dojo/ > etc.
La structure que j'utilise est de ce type:
Le virtualhost: dojo.package (fonction serveur) c:/monRep/dojo-packages/www/(copie du package DOJO)
Le virtualhost: gescomptes.fe (fonction client) c:/monRep/fe/www/index.php c:/monRep/fe/www/l'arborescence de mon appli gescomptes.
Je viens de constater qu'un grand nombre (très exactement 323) de requêtes de mon appli vers dojo.package semblent se dérouler avec succès comme en atteste l'extrait du journal "Apache access log" ci-dessous:
Après examen des fichiers reçus coté client, je me rends compte que manquent tous les fichiers html (les fichiers .js et .css sont bien reçus). Y-a-t-il dans le paramétrage des virtualhosts quelque chose qui puisse expliquer ce filtrage intempestif ?
Cette structure peut paraître compliquée à plaisir mais j'ai voulu isoler le framework Dojo (fonction serveur) de mon appli gescomptes (fonction client), compte tenu de l'existence d'autres scripts Dojo (mini applis) que j'ai faits, qui n'ont rien à voir avec l'appli gescomptes et pour lesquels je compte créer un autre virtualhost spécifique client du serveur dojo.package quand je les mettrai en oeuvre. Mais peut-être n'ai-je pas adopté la bonne architecture?
Modifie 5 fois. Derniere modification le 17/02/2016 à 21:40 par Plancade.