2017-11-01 16 views
0

私のAngular 4プロジェクトディレクトリに.txtファイルがあり、その内容を読みたいです。どうやってするの ?以下は、私が採用したコードです。角4:HTTPClientでテキストファイルの内容を読み取る方法

ファイルは、 'app'フォルダ内の 'files'フォルダにあります。 私はHTTPClientコードを持っているコンポーネントは、 'アプリケーション'フォルダ内の 'httpclient'フォルダにあります。

意味 'ファイル'フォルダと 'httpclient'フォルダは子供です。

コードを以下に示します。私は404エラーを取得してMとそれは働いていません - 'GET http://localhost:4200/files/1.txt 404(見つかりません)'

this.http.get('/files/1.txt').subscribe(data => { 
     console.log(data); 
    }, 
     (err: HttpErrorResponse) => { 
      if (err.error instanceof Error) { 
       // A client-side or network error occurred. Handle it accordingly. 
       console.log('An error occurred:', err.error.message); 
      } else { 
       // The backend returned an unsuccessful response code. 
       // The response body may contain clues as to what went wrong, 
       console.log(`Backend returned code ${err.status}, body was: ${err.error}`); 
      } 
     } 
    ); 
+0

相対URLを試しましたか? (つまり、 'http.get( 'files/1.txt')' - 最初のスラッシュはありません)ファイルを 'assets'フォルダに置くか、その内容は - 私が信じる - サイト。 – AngularChef

+0

はい、私はちょうど今、同じエラーを試しました。それは見つけられません - 何が間違っていますか?私はちょうど正式な角度の文書のコードに従っていますhttps://angular.io/guide/http#requesting-non-json-data – yogihosting

+0

あなたのファイルのパスは正しいですか? – Chandru

答えて

3

を次のように試してみてください:

this.http.get('app/files/1.txt').subscribe(data => { 
    console.log(data.text()); 
}) 

CLIはappディレクトリにプロジェクト内のdocmentsにアクセスすることはできません。テキスト文書に移動すると、assets/1.txtのようなテキストファイルにアクセスできます。

アプリディレクトリ内のドキュメントにアクセスしたい場合は、.angular-cli.json

.angular-cli.json

"assets": [ 
    "assets", 
    "app", /* add this line to access document inside the app directory */ 
    "favicon.ico" 
] 
で資産配列にパスを追加する必要があります

は私の例です。

this.http.get('app/home/1.txt').subscribe(data => { 
    console.log('data', data.text()); 
}) 
+0

資産ファイルはアクセス可能ですが、別のフォルダに保存されたファイルをどのように評価することができますか? – yogihosting

+0

assets配列内のangular-cli.jsonファイルに 'app'を追加する必要があります。あなたはそれにアクセスすることができます。 importはプロジェクトを再実行します – Chandru

+0

私はangular-cli.jsonにappを追加しましたが、まだ動作していません。 – yogihosting

関連する問題