【发布时间】:2019-03-22 09:40:13
【问题描述】:
我希望我的 Angular 应用程序在没有服务器的情况下作为独立应用程序工作。
assets 文件夹中有图像、声音文件等,还有一个 game.json 文件,其中包含应用程序的业务数据(在服务器上,这些数据将存储在数据库中或将通过 Rest 调用)。
一切运作良好。使用“ng build”,我可以通过在我的操作系统中打开 index.html 来创建完整的构建 - 没有 http-Server 的文件管理器。
问题是我无法在构建之后更改 game.json 的内容,因为它似乎以某种方式包含在构建中。更改将被忽略,它会将内容冻结在编译的状态。
由于我将仅在本地运行应用程序,因此我以这种方式读取数据:
typings.d.ts:
declare module "*.json" {
const value: any;
export default value;
}
game.service.ts:
import * as data_json from 'assets/data/game.json';
@Injectable()
export class GameService {
constructor() { }
loadGames(): Observable<Game> {
return Observable.of(JSON.parse(JSON.stringify(data_json)));
}
}
我不使用 HTTPClient,因为我会遇到 CORS 问题。 读取数据工作正常,但文件 game.json 中的更改被完全忽略。
有没有办法让这个文件“可修改”,以便我可以在构建的资产文件夹中更改它?
【问题讨论】:
-
为什么你不想使用 HTTPClient 从 assets 文件夹中获取数据?如果你这样做,我认为你不会有任何与 CORS 相关的问题。
-
我尝试过,但遇到了 CORS 问题。
-
你可以试试我下面提到的解决方案。