目标
在CDN(CloudFront)上提供除index.html之外的所有文件。因此,该应用程序在与资产不同的子域中提供。
问题
我使用ng build --prod --aot --base-href https://mycdn.x.com
来构建我的应用程序,然后将所有文件发送到我的CDN。 Nginx服务器正在提供index.html
发生的事情是在应用程序加载时出现以下错误:
Uncaught (in promise): SecurityError: Failed to execute 'replaceState' on 'History':
A history state object with URL 'https://mycdn.x.com/' cannot be created in a document with origin
'https://myapp.x.com' and URL 'https://myapp.x.com/page1/page2'.
注释
在保持应用正常运行的同时,如何提供CDN的所有资产?
答案 0 :(得分:1)
找到了解决方案,应该使用--deploy-url
而不是--base-href
。
ng build --prod --aot --deploy-url https://mycdn.x.com