システムの次の場所に1つのJSONファイルがあります
/etc/project/system.json
システムパスを使用してこのファイルにアクセスしようとしていますが、機能しません。ただし、このファイルをアプリケーションのsrc内に配置すると問題なく動作します。
JSONファイルのパスは「/etc/project/system.json」であり、アプリケーションパスは「/ var / www / DemoProject」です
ローカルシステムからファイルにアクセスするにはどうすればよいですか。
他の人が述べたように、あなたの問題はあなたが使用しているサーバーによってのみ解決することができます。必要なのは、通常、静的ファイルサービスという名前です。サーバーで静的ファイルを提供するための具体的な手順については、インターネットをご覧ください。
ただし、おそらく、ある時点でAngularアプリケーションを構築しています。Webpackを使用している可能性もあります。
Angular-cliを使用してアプリを構築している場合は、次の設定を使用して、システムフォルダーをアセットの下にコピーできます。Webpackを使用する場合、ファイルをコピーせずに、要求するたびにファイルを動的にフェッチします。ここで webpackについて読んでください。あなたの.angular-cli.json
ファイルで:
"assets": [
"assets", // These two are generally used in Angular projects
"favicon.ico", // ^^^^^^^^^
{
"glob": "system.json",
"input": "/etc/project/",
"output": "./<outputfolder>"
}
]
これを行うと、URLでファイルにアクセスできます http://yourdomain/<outputfolder>/system.json
typescriptコードでこのjsonファイルを使用している場合は、typescriptパスマッピング構成を設定してこのファイルを見つけることもできます。WebpackとAngular-cliもこの構成をサポートしています。あなたのtsconfig.json
ファイルで:
"paths": {
"system.json": [
"/etc/project/system.json"
]
}
次に、次のようにtypescriptでjsonをインポートできます。
import * as data from 'system.json';
typescriptはそれ自体でjsonファイルのタイプを解決できないため、このjsonファイルのタイプ宣言が必要です。あなたはそれについてここで読むことができます。つまり、これをtypings.d.ts
プロジェクトのルートに配置します。
declare module "*.json" {
[key: string]: any;
}
typescriptパスの解決について詳しくは、こちらをご覧ください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加