2

尝试将 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": {
        }
    },
}

捆绑配置.json

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

在.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 文件本身。使用相同版本的 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
4

2 回答 2

2

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

顺便问一下,您仍然使用 .NET SDK 1.0 的 preview2 有什么原因吗?与此同时,.NET Core SDK 2.0的最终版本已经发布。如果您不想升级到 1.1 或 2.0,我至少会安装.NET Core SDK 1.0.4。唯一需要的额外步骤是使用.从 project.json 迁移到 *.csprojdotnet migrate

于 2017-08-23T10:02:06.023 回答
0

尝试添加./到路径,如表示基于 UNIX 的系统./foo.png.的当前目录。

于 2017-08-23T18:51:26.837 回答