我使用Angular 4.3.3和CLI版本1.2.7构建了一个可以在SharePoint中运行的应用程序。此应用程序依赖于FontAwesome的图标。
运行ng serve
时,显示FontAwesome图标没问题。但是,在为生产环境构建时,它们不会显示。
Angular应用程序是可由客户安装的产品的一部分。它们都有自己的SharePoint环境。 SharePoint WebPart通过IIS网站检索捆绑的文件。
我能够加载这些文件,因此我的应用程序适用于每个客户,但正如我已经说过的,FontAwesome图标没有显示,因为它试图加载woff2,woff和ttf文件相对于SharePoint网站网址。
如上图所示,文件相对于glen2013/sites/AdventureWorks2014
加载。提供字体文件和捆绑应用程序文件的IIS网站不在glen2013
服务器上,而是在不同的服务器上。我知道我可以使用CLI中的deployUrl
选项来指定文件所在的路径,但是文件所在的URL会从客户更改为客户。每个客户都拥有自己的deployUrl
,但我不想强迫业务用户更改.angular-cli.json
文件并打开命令提示符以触发应用程序的生产版本。
有人可以帮助我在运行时实现这一目标吗?
构建命令
ng build -e prod --no-sourcemap
dist文件夹内容
.angular-cli.json
"styles": [
"styles.css",
"obiz-theme.scss",
"../node_modules/@progress/kendo-theme-default/dist/all.css",
"../node_modules/font-awesome/css/font-awesome.css"
],
ng -v输出
@angular/cli: 1.2.7
node: 8.0.0
os: win32 x64
@angular/animations: 4.3.3
@angular/cdk: 2.0.0-beta.8
@angular/common: 4.3.3
@angular/compiler: 4.3.3
@angular/core: 4.3.3
@angular/forms: 4.3.3
@angular/http: 4.3.3
@angular/material: 2.0.0-beta.8
@angular/platform-browser: 4.3.3
@angular/platform-browser-dynamic: 4.3.3
@angular/platform-server: 4.3.3
@angular/router: 4.3.3
@angular/cli: 1.2.7
@angular/compiler-cli: 4.3.3
答案 0 :(得分:0)
我同意LLai。当我将@ angular / cli升级到版本1.3.0时,我也犯了这个错误。现在我已经解决了。 1.复制frctawesome到src / assets 2.将其添加到index.html 3.modify配置文件.angular-cli.json “资产”:[ {“glob”:“** / *”,“input”:“../ node_modules/font-awesome”,“output”:“。/ font-awesome /”} ] “风格”:[ “../node_modules/font-awesome/css/font-awesome.min.css” ],