.net - GNU/Linux 上的 dotnet bundle 后 css 中的路径错误

标签 .net bundle dotnet-linux dotnet-bundle

尝试将 Web 项目从 Windows 上的 dotnet 移植到 GNU/Linux 上的 dotnet。 C# 代码工作正常,但我在缩小 dotnet bundle 时遇到问题。在缩小的输出 css 中,例如图像的路径将替换为 css 文件本身的路径。

我已将其简化为一个可以重现问题的小测试用例。

使用以下文件创建一个空目录(查看 out.min.css 并将完整文件系统路径与背景 URL 与 in.css 进行比较):

项目.json

{
    "tools": {
        "BundlerMinifier.Core": "2.0.238",
    },

    "frameworks": {
        "netcoreapp1.0": {
        }
    },
}

bundleconfig.json

[
    {
        "outputFilename": "out.min.css",
        "inputFiles": [
            "in.css",
        ]
    },
]

in.css

body {
    background: url(bg.png);
}

然后运行dotnet bundle生成以下文件:

out.min.css

body{background:url('/home/jsvh4h/dotnet/out.min.css')}

background:url() 应该引用 bg.png,但它引用的是 css 文件 itself。使用相同版本的 dotnet 在 Windows 上执行相同的操作,输出是正确的。有人以前见过这种行为吗?更好的是,可以提出修复或解决方法的建议吗?

一些可能有趣的系统信息

bash-4.2$ dotnet --version
1.0.0-preview2-003131
bash-4.2$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.3.1611 (Core)
Release:    7.3.1611
Codename:   Core

最佳答案

这应该已由 BundlerMinifier#229 修复。因此,将 BundleMinifier.Core 更新到版本 2.4.337(仍支持 netcoreapp1.0)应该可以解决您的问题。

顺便问一下,您仍在使用 .NET SDK 1.0 预览版 2 是否有任何原因?与此同时.NET Core SDK 2.0的最终版本被释放了。如果您不想升级到 1.1 或 2.0,我至少会安装 .NET Core SDK 1.0.4 。唯一额外必要的步骤是migrate from project.json to *.csproj使用dotnet migrate

关于.net - GNU/Linux 上的 dotnet bundle 后 css 中的路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45082180/

相关文章:

javascript - .NET webclient 向 Javascript 请求代码

c# - 有没有一种方法可以从字符串中删除空白字符?

.net - NHibernate HQL不支持 "with"关键字吗?

c# - Entity Framework 更改跟踪

react-native - 什么是React Native的 bundle ,其目的是什么?

ios - Swift 3.0 - 从 XCode 包中读取 .JSON 文件

ruby-on-rails - sudo gem install pg -v '0.18.4' 在 macos sierra high (RoR) 上不起作用