Angular CLI 8中是否有--rebaseRootRelativeCssUrls选项的替代方法?

时间:2019-07-10 11:39:26

标签: angular angular-cli

我遇到了很多问题,因为我的应用程序托管在子文件夹中,因此/assets/文件中引用的相对.scss路径不起作用。 解决方案是启用--rebaseRootRelativeCssUrls选项以获取预期的行为。使用该选项,构建过程通过注入“ --base-href”值来调整了我的/assets/路径,现在已正确加载了引用的图像和字体。

但是,我在文档中看到该选项已被弃用,它将在下一个主要版本中删除。

https://angular.io/cli/build(搜索--rebaseRootRelativeCssUrls

所以我的问题是,还有什么选择,还有其他方法可以得到相同的结果吗?

4 个答案:

答案 0 :(得分:0)

在angular.json中,您可以设置多个资产文件夹

struct ActivityBreak : View {
    var myId: Int
    @EnvironmentObject var model : ModelClockToggle
    @State private var booted: Bool = false

    // Beta 4
    let anim1 = Animation.easeInOut(duration: 1.0).repeatCount(Int.max)
    let noAni = Animation.easeInOut(duration: 0.2).repeatCount(0)

    // Beta 3
    // let anim1 = Animation.basic(duration: 1.0, curve: .easeInOut).repeatCount(Int.max)
    // let noAni = Animation.basic(duration: 0.2, curve: .easeInOut).repeatCount(0)

    var body: some View {

            return Circle()
                .foregroundColor(.red)

                .scaleEffect(!booted ? 0.6 : self.model.amIRunning(clock: self.myId) ? 1.0 : 0.6)
                .animation( self.model.amIRunning(clock: self.myId) ? anim1 : noAni )
                .tapAction {
                    self.model.toggle(clock: self.myId)
                }
                .onAppear {
                    self.booted = true
                }


    }
}

这使您可以拥有多个资产文件夹。

答案 1 :(得分:0)

根据发行说明,建议的过渡方法是在.scss文件中使用相对URL。在我看来,这似乎是个坏主意。这是开发团队针对记录此问题的错误的评论。

https://github.com/angular/angular-cli/issues/14587#issuecomment-497368020

答案 2 :(得分:0)

我是这样通过使用路径解决的:

background-image: url('../../../assets/images/icon.png');

而不是这样:

background-image: url('/src/assets/images/img.png');

答案 3 :(得分:-1)

如果您的项目部署在子文件夹中,则可以将该信息传递给build命令

我建议您看看--base-href

  

在开发中,通常在以下目录中启动服务器:   拥有index.html。那是根文件夹,您将添加   在index.html顶部附近,因为/是应用程序的根。

     

但是在共享或生产服务器上,您可以通过   子文件夹。例如,当加载应用程序的网址是   mysite.com/my/app/,子文件夹为my / app /,您应该   添加到服务器版本的index.html。

您可以使用以下命令修改生产基础href:

ng build --prod --base-href /subfolder/

您还可以将base-href设置为./,这表示当前目录与/相对,后者代表根目录。

另一种可能的解决方案是更改主href中的index.html

<base href="./">