2012-11-13 6 views
5

私はRequire.jsとBackbone.jsとで作業していました。私はデスクトップからindex.htmlをダブルクリックしてブラウザーに表示し、それを使って実行する単純なtodoアプリケーションを作ろうとしてきました。 Require.jsによってテンプレートをフェッチする場合しかし、それは私に次のエラー与えてRequire.js Templates "原点を越えた​​リクエストはHTTPのためだけにサポートされています"エラー

XMLHttpRequest cannot load file:///C:/bada/js/templates/headerTemplate.html. Cross origin requests are only supported for HTTP. 

を、私は、サーバーからの要求をしていないよので、私はこれが起こっている知っています。私はChromeで知っていますが、このエラーはChromeを起動するときにいくつかのパラメータを使用することで抑止できますが、私は携帯電話でindex.htmlをローカルで実行してこのアプリを使用するつもりです。

このエラーが発生しないようにしてアプリが正常に動作するようにするにはどうすればよいですか?

答えて

1

短い回答:いいえ。

長い回答:アプリケーションのキャッシュを調べます。

あなたのアプリが構築される前にそれをしないでください。しかし、それが構築された後、オフラインキャッシュを設定してlocalStorage(必要な場合)を利用すれば、それは最も優れた携帯電話/タブレット/ラップトップ/ PC上で動作するはずです。

しかし、私が言ったように、ないは、あなたはそれがあるとして、あなたのファイルデータのすべてを凍結する準備が整いました後までのマニフェストキャッシュを設定します。
データをキャッシュするのは本当にうまくやっていますが、これは素晴らしいことです...しかし、ファイルを変更すると、キャッシュを無効にして最新のバージョンをダウンロードしたり、新しいもの...

... 5分ごとに、私のように、ちょうど安全のためにヒットしたい場合... ...あなたが望むなら、頭痛のためにそれらの微小変化を見ることができます。

+0

hmmmm、これはダウン者です。私は本当にこれを解決することを願っていました。キャッシュのものを調べたり、メインのhtmlファイルにあるすべてのテンプレートを押したりします。-_- – Hirvesh

+2

btw、なぜRequire.jsがJavaScriptモジュールファイル(.jsファイル)を読み込むのに問題はないのですか? HTML 1? – Hirvesh

+3

requireは、jsファイル用のモジュールにsrcを設定してscript要素を作成します。 HTMLテンプレートを使用するとAjaxを使用して読み込みます(テキスト!プラグインを使用) –

2

Google Chromeでは、フラグ--allow-file-access-from-filesを使用してこれを行うことができます。これにより、ローカルファイルシステムにアクセスできます。

Chromeアイコンのプロパティを変更し、デフォルトでフラグを有効にすることをおすすめします。他のブラウザにはおそらく同様のものがありますが、わかりません。

関連する問題