2017-10-12 6 views
1

J'essaie de charger un binaire wasm sur les rails, mais je n'ai que du succès si le code de la colle ".js" et le binaire .wasm sont sur le dossier public ... Si je essayer d'y accéder à travers mes vues, le code de colle .js n'est pas capable de trouver le binaire wasm. (Impossible de charger le fichier binaire wasm à 'wget.wasm')Chargement des binaires WebAssembly sur les rails

Ai-je besoin de créer une route spécifique vers le binaire wasm? J'ai essayé de changer l'emplacement .wasm sur le code de la colle .js qui est généré après que mon code C est compilé avec emscripten, mais sans succès ...

Ou dois-je ajouter des méthodes pour envoyer le fichier binaire le controlle? J'ai essayé d'utiliser la méthode send_file, mais le fichier .wasm était en cours de téléchargement au lieu d'être chargé sur la page ...

En utilisant l'inspecteur de page de Firefox, j'ai observé que lorsque la requête est faite à travers mes vues, le GET aboutit à un statut 500 "Internal Server Error", mais quand j'accède à travers le dossier public, il en résulte un statut 200 "OK".

La seule information à propos de Ruby on Rails et de l'intégration WebAssembly que j'ai trouvé était une spatule à github spécifiquement dans ce commit, d'une présentation à la conférence RubyKaigi 2017 « Ruby, Opal et WebAssembly », mais je ne suis pas avoir des progrès à l'aide il. Il semble qu'un code js est exécuté dans le fichier .rb this pour charger le binaire wasm, mais comme je l'ai déjà dit, je n'ai pas réussi à l'utiliser.

+0

Quelle est l'erreur 500 vous » Revenir? Pouvez-vous l'afficher dans la question? –

+0

J'ai ajouté l'information à la question, c'était une erreur de la requête HTTP –

Répondre

0

Si vous base64 encode le fichier .wasm alors vous pouvez le mettre directement dans le JavaScript comme ceci:

Module.wasmBinaryFile = "data:application/wasm;base64,AGFzbQEAAAAByQ/AAWACf38Bf2A..."; 

qui a résolu un problème similaire, j'avais