【问题标题】:How to load assets from single-spa microfrontend's assets in styles.scss?如何从styles.scss 中的single-spa 微前端资产加载资产?
【发布时间】:2022-11-09 00:42:42
【问题描述】:

我最近开始将一些 Angular 项目迁移到 single-spa,我遇到了这个问题。

在子项目(微前端,Angular 12)中,styles.scss 中请求的资产只会从根/主机 url 中请求,而组件的 scss 文件中请求的资产将正确地在微前端的 url 中查找它们。 我尝试使用ng serve--deploy-url 选项,APP_BASE_HREF 提供了正确的基本网址。在“single-spa 模式”下启动时,子项目由 @angular-builders/custom-webpack:dev-server 构建器提供。 "baseHref"angular.json>architect.build.options 中的 "deployUrl" 属性不起作用,"rebaseRootRelativeCssUrls" 将在构建/服务时抛出错误,因为它已在以前的 Angular 版本中被删除。

Sample image of the resulting network requests based on where the asset is called from

.scss 文件中的路径是相对的,如下所示:

styles.scss
.sample {
  background-image: url('./assets/img/SAMPLE.png');
}
app.component.scss
.sample-two {
  background-image: url('../assets/img/SAMPLE.png');
}

将资产复制到根项目并使用绝对 URL 不是一种选择。由于子项目需要独立并且能够由开发人员独立加载,因此它们应该保留自己的资产,并且如果存在替代方案,则不应将它们复制到两个项目中。

【问题讨论】:

    标签: angular webpack assets single-spa-angular


    【解决方案1】:

    这已经解决了吗?我现在面临同样的问题。

    【讨论】:

    猜你喜欢
    • 2021-08-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2011-11-30
    • 1970-01-01
    • 2016-03-18
    相关资源
    最近更新 更多