【问题标题】:scss files work locally but not in deployment, works in chrome, not in IEscss 文件在本地工作但不能在部署中工作,在 chrome 中工作,而不是在 IE 中
【发布时间】:2019-09-13 02:56:59
【问题描述】:
我在 ASP .Net C# 中使用标准引导程序,它似乎生成了很多文件,例如 _navbar.scss。这些在 IE 和 Chrome 中的 localhost 上都可以正常工作。当我发布时,它在 Chrome 中工作,但在 IE 中没有应用任何样式。不幸的是,我不得不将 IE 编码为我们的标准。
我可以理解它在本地和部署中都不能在 IE 中工作,这只是 IE 不符合基本标准的问题,但它确实在 IE 本地工作。我可以理解它在生产中不起作用,这可能表明某些东西没有被复制或其他东西。我不明白为什么它会在生产中工作,并且在 IE 中工作,但在生产中不是特别是 IE。
【问题讨论】:
标签:
css
asp.net
twitter-bootstrap
internet-explorer
sass
【解决方案1】:
只是想尝试清除其中的一些...
.scss 文件
标准模板不会生成 .scss (Sass) 文件。它实际上返回一个标准的 .css 文件。在 chrome 中调试时它显示 .scss 文件的原因是因为 source map 可以解构 .css 文件,以告诉您在 .sass 文件中创建它的位置是代码的来源。
您可以阅读有关源映射here
了解更多关于 Sass 的信息here
开发和生产之间的 Css 差异
_layout.cshtml 中的默认模板如下所示:
<environment include="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
</environment>
<environment exclude="Development">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
crossorigin="anonymous"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"/>
</environment>
这是什么意思:
- 在开发中,您会得到未缩小的 css
- 在生产中,它会尝试使用 CDN 作为引导 css
- 如果 CDN 不可用,它将使用本地缩小的 css
你可以阅读更多关于环境标签助手here
引导 IE 支持
Bootstrap 仅支持 IE10+,因此如果您尝试使用旧版本的 IE,这将是您的问题。见here
如果您确实使用 polyfill 让它与旧版本的 IE 一起使用,IE 仍然有一些怪癖需要注意。一方面,如果使用额外的样式表,IE 6-9 有最大数量的规则,他们可以在惊慌失措之前处理,你可能很容易超过。见here
解决问题
如果是 IE 10+,请尝试:
- 验证生产站点是否正确指向
正确的 CDN 路径
- 验证后卫 css 路径是否准确且未返回 404
希望对您有所帮助。