私は現在、フラッシュドライブから実行される "Webアプリケーション"を構築しようとしています。したがって、他の環境では起動オプションおよびフラッシュドライブ上のindex.htmlファイルへのパスです。AngularJSとRouteProviderを使用した純粋なローカルシングルページアプリケーション
file://プロトコルを使用してファイルを読み込んで、Webサーバーではなく、ファイルをうまく再生するために、angularJSをうまく動かすにはいくつか問題があります。
html5モードをtrueに設定してローカルリソース(ビデオなど)をロードするようになっていますが、現在はルートプロバイダを使用できません。
ここに私のものがあります: var testApp = angular.module( "testApp"、['angle-underscore'、 "ngRoute"、 "com.2fdevs.videogular"]);
testApp.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/', {template: '/views/MainView.html', controller: "VideoPlayerController" })
.otherwise({redirectTo:'/'});;
});
ファイルをダブルクリックしてindex.htmlファイルをChromeにロードすると、URLは「file://」で始まります。これは、コマンドラインで必須ファイル "--allow-file-access-from-files"を指定して起動する場合にも発生します。
routeProviderをfile://で意図したとおりに動作させるにはどうすればよいですか?私はindex.htmlを
<base href="/index.html">
に私の頭のタグに以下を追加しますしかし、それはクロムのURL欄に
file:///
で終了しない限り、それは現在でも「それ以外」のルートを認識していません。他のすべてのリソースが読み込まれません。 以下は、1つのコントローラコンボだけで表示されるエラーの例です。
GET file:///index.html net::ERR_FILE_NOT_FOUND
ありがとうございます! (Webサーバーを使用しても構わないと思っていますが、今はこのプロジェクトには参加できません)
あなたはMacにいますか? – Niall
私は午前。どうして?違いはありますか? :) – bobber205
角度のドキュメントは、 "$ルートは深いリンクURLに使用されています"と言っています。 file:プロトコルはURLではありません。要するにqueryString、フラグメントなどはありませんが、角度コードにパッチを適用しなければ動作しない可能性があります... – dandavis