2017-01-27 8 views
1

私は現在Aurelia-Frameworkを使用しており、大きなjsonファイルをアプリケーションにロードしたいと考えています。JavaScriptシングルページアプリケーション - jsonを "どのように"配布しますか?

問題は、私のChromeブラウザの「dist」フォルダにjsonファイルを表示して、スクリプトがそれを見つけることができるようにすることです。要するに

は、私はこれをしたい:

var request = new XMLHttpRequest(); 
var jsonString = request.open("GET", "file://../core/data/5e-SRD-Monsters.json", false); 

...はい、パスが正しいですが、フォルダ「データ」とその内容は、Chromeのデバッグソースには表示されません。

何とかgulp経由でjsonを含める必要がありますか?

+0

テスト目的のために、スクリプト/コードと同じフォルダにファイルを配置して、ファイル名だけでアクセスすることはできますか?(絶対パスは除く) –

+0

私は、同じ問題は、配布に存在していないjsonは 私はそれが何とか、私は思うが、どのように含める必要がありますか? – DaDungeonMaster

+0

'file'の代わりに' http'プロトコルを使ってみてください。 – Unrealsolver

答えて

0

あなたの主な質問は「jsonファイルを 'dist'フォルダに表示する方法」です。コメントでも言及されているように、それは簡単に含めるのです。 スケルトンJSPMプロジェクトのために

は、次のようにします。

  1. オープン~/build/export.jsファイル
  2. は、最初の「リスト」セクション
で.jsonファイルを含む、ファイル、またはフォルダを含めます

これは次のようになります。

module.exports = { 
     'list': [ 
     'index.html', 
     'config.js', 
     'favicon.ico', 
     'LICENSE', 
     "jspm_packages/npm/[email protected]/js/browser/bluebird.min.js", 
     'jspm_packages/system.js', 
     'jspm_packages/system-polyfills.js', 
     'jspm_packages/system-csp-production.js', 
     'styles/styles.css', 
     'core/data/5e-SRD-Monsters.json' 
     ], 

ここにはan an exampleが入ります。

重要:あなたは私はあなたがJSPMとスケルトンを使用と仮定しています「distの」フォルダの話をしている考えます。このプロセスは、CLI、スケルトンWebpack、またはおそらくスターターキットで構築されたAureliaアプリケーションを構築するときとは全く異なります。

これで、distフォルダに.jsonファイルがあります。しかし、XMLHttpRequestを使用してfile://をロードすることは、推奨されるアプローチではありません。コメントでも述べたように、理想的にはファイルリクエストではなくhttpリクエストとしてロードするのが理想的です。

これを参考にしましょう。いずれかを排除するであろう、//:

import { HttpClient } from 'aurelia-fetch-client'; 

export class App { 

    get_stuff() { 
    let http = new HttpClient(); 

    // assuming the file is in /dist/core/data/, 
    // simply read it through a promise + through a relative path: 
    http.fetch('./core/data/5e-SRD-Monsters.json') 
     .then(data => console.log(data)); 
    } 

} 

さて、これは、HTTPではなくファイルを使用しています。あなたがする必要があるすべてはあなたのライブラリにオーレリア・フェッチ・クライアントを追加し、あなたは、単にこのような何かを行うことができますですファイルシステムへの直接のアクセス不足など、発生する可能性のあるアクセス権の問題。

+0

ありがとう!それはまさに私が探していたものでした!はい、私はJSPMパックを使用していました – DaDungeonMaster

関連する問題