尝试将 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/