2010-11-14 2 views
2

Je cours un projet rails3 avec un hôte d'actif externe pour tous les javascript, images, swfs, etc. Ceci est sur un domaine complètement différent. Donc, je sais que j'ai essayé d'intégrer certains fichiers SWF en utilisant swfobject. En développement (même hôte) tout fonctionne bien, mais en production (différents hôtes) il ne démarre pas le flash (firebug montre que le fichier est chargé mais rien n'apparaît sur la page). J'ai déjà mis ce fichier crossdomain.xml dans la racine de l'hôte de l'asset mais cela ne change rien du tout.problème de domaine flash et cross

http://my.host/crossdomain.xml

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
</cross-domain-policy> 

http://my.host/swfs/sound1.swf http://my.host/swfs/video1.swf ...

Que puis-je faire pour le faire fonctionner? Les SWF que j'utilise ne sont pas développés par moi, donc je ne peux pas les changer. Certains sont des sons simples, d'autres sont des vidéos et de petites "applications". Je ne veux pas avoir à faire des rails servir les swfs.

Répondre

1

Votre hôte "content" doit autoriser l'accès depuis votre hôte "asset", et non l'inverse. Ceci a pour but de protéger les utilisateurs contre les scripts intersites, de sorte que l'hôte qui détient les fichiers décide s'ils peuvent ou non avoir accès à tous les fichiers.

+0

suzre vous avez raison, stupide meh – gucki

2

<allow-access-from domain="*"/> ne fonctionne pas dans les dernières versions de Flash, vous devez spécifier le domaine et les ports précis, par exemple:

<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all"/> 
    <allow-access-from domain="my.host" to-ports="80,8080"/> 
</cross-domain-policy> 

Et sûrement vous devriez mettre le crossdomain.xml dans la racine de vos rails publics app répertoire, pas sur votre hôte d'actif.

+0

ok, merci pour l'indice. Je n'ai pas testé, parce que j'ai mis un domaine spécifique dans. – gucki

0

Supplémentaire à la réponse ci-dessus (mettre le fichier crossdomain.xml sur l'hôte demandeur, pas sur l'hôte de l'asset) J'ai dû ajouter le paramètre allowExitAccess: "always" à swfobject. Sinon, l'interface externe du flash n'a pas pu être démarrée.

Questions connexes