You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 19 SSR/SSG环境下InjectionToken注入失败问题求助

问题解决:NullInjectorError: No provider for InjectionToken storageBaseUrl!

原因分析

你在应用的app.config.ts中使用字符串'STORAGE_BASE_URL'作为依赖注入的标识,但库中定义的STORAGE_BASE_URL是一个InjectionToken实例。Angular的依赖注入系统是通过令牌的引用身份来匹配提供者的,字符串和实例是完全不同的两个标识,所以DI系统找不到对应STORAGE_BASE_URL实例的提供者,最终抛出错误。

解决方法

需要在应用配置中导入库中的STORAGE_BASE_URL令牌实例,用它作为provide字段的值,而非字符串。

修正后的app.config.ts

import { environment } from '../environments/environment';
// 从共享库导入STORAGE_BASE_URL令牌(路径根据你的库结构调整)
import { STORAGE_BASE_URL } from 'SharedLib/tokens';

export const appConfig: ApplicationConfig = {
  providers: [
    // [...]
    { provide: STORAGE_BASE_URL, useValue: environment.storageBaseUrl },
  ],
};

额外说明

  • 确认导入路径正确,必须指向库中导出STORAGE_BASE_URL的具体文件。
  • 由于app.config.server.ts已经通过mergeApplicationConfig合并了appConfig,服务端配置会自动继承这个正确的提供者,无需额外修改。

修改完成后重新运行ng serve,DI系统就能正确匹配到STORAGE_BASE_URL的提供者,错误即可消除。

内容的提问来源于stack exchange,提问作者Tilli85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:29:55