ローカルファイルが見つからないために開くことができず、画像ファイルであろうとデータファイルであろうといくつかの異なる投稿を見てきましたが、どの解決策もうまくいきませんでした。私が推測しているのは、欠落している構成があることです。
私が探しているファイルは、app.htmlファイルとapp.tsファイルと同じレベルにある「data」という名前のフォルダにあります。
ここに私がapp.htmlに持っているものがあります、PS私はIonic2も使用しています:
<ion-menu (click)='getDepartments()' side='right' type='overlay' [content]="content">
そして私が持っているapp.tsファイルで:
getDepartments() {
this.http.get('/data/data.json')
.map(res => res.json())
.subscribe(
data => this.departments = data,
err => console.log(err),
() => console.log('Random Quote Complete')
);
}
私はもう試した:
./data/data.json
data/data.json
app/data/data.json
およびその他のパス。そして、それらはすべて404 file not foundエラーを返します。これは、Angular 2。
以前の回答では、これをwww
フォルダーに直接配置して、アプリで使用できるようにすることを述べていました。新しく作成されたIonic2プロジェクトで_.gitignore
_を使用してwww
フォルダーが除外されているため、これは最善の解決策ではないと思います。
代わりに、それを_src/assets
_フォルダー内に配置すると、アプリでも使用できるようになり、(デフォルトでは)gitリポジトリから除外されません。その後、次を使用してアクセスできます:this.http.get('assets/file.json');
.gitignoreファイルを変更できますが、他の不要なファイルを含める可能性があります。
同じ問題の解決に興味がある人なら誰でも。 Angular CLIを使用していて、この場合は "data"フォルダーのように、http経由で任意のフォルダーにアクセスできるようにする場合。
Angular-CLI.JSONに移動し、アプリの下に「データ」である「フォルダー名」を追加します->アセット
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico",
"data"
],
Ionicで作業すると、appフォルダー内のすべてがコンパイルされ、www/buildフォルダーに配置されることに気づきませんでした。そのため、コンパイルされていないappフォルダーにパスを配置すると、私がパスを入れているファイルが、私が思っている場所ではないことを理解してください。
だから私は2つのことをしました、それぞれがうまくいきました。ファイルをwwwファイルに直接配置します(ionic serve)を実行するたびに削除されるため、ビルドファイルには配置しないでください。その後、それに応じてパスを修正します。または単にapp.tsでファイルを探すとき、最初にwww/buildを終了する必要があることを認識して、パスを修正します。