外部CSS显示在head标记中,而不是单独的文件

时间:2015-07-20 18:49:14

标签: css asp.net azure google-chrome-devtools bundling-and-minification

PLATFORM
* Asp.net Webforms - C#
* .Net 4.5
* Azure虚拟主机
* Chrome(43.0.2357.134米) - 最新

问题
我目前正在使用ASP.NET Web Optimization Framework捆绑CSS和Javascript。在我的本地环境中进行测试时,一切都很好。您可以清楚地看到aspx页面相对较小,并且捆绑包被列为单独的单个文件(cssAll& jsAll)。

https://www.dropbox.com/s/dazt681qylk41hm/local-login-cache.PNG?dl=0

一旦我部署到Azure,Javascript包确实保持正确链接并缓存,但不再引用CSS包。相反,所有CSS代码都直接写入aspx文件的head标记。这会导致aspx文件呈指数级增长(从5KB到87KB)并且它会阻止CSS被缓存。有趣的是,当我禁用缓存时,CSS文件现在作为单独的文件发送,我的aspx返回其较小的大小。

https://www.dropbox.com/s/eox7b0vc0mi27wo/azure-login-combined.PNG?dl=0

我的想法&问题

  1. 这是正常行为吗?我只是误解或误用Chromes开发人员工具和/或CSS缓存的工作方式?
  2. 如果这是正常行为,那么为什么我的本地环境对Azure托管环境的响应不同?
  3. 如果这不是正常行为,那么问题在哪里呢? (请阅读下面的注意事项,看看我已经尝试过或已经排除故障的内容)
  4. 考虑因素

    • 我已经确认我的本地计算机和Azure之间的所有CSS,Javascript和相关目录结构都是相同的。 (Web部署处理得很好)

    • 我尝试过与IE11和Firefox完全相同的测试,得到类似的结果。如果禁用了缓存,则CSS会按预期单独出现,但如果启用了缓存,则会将CSS详细写入aspx页面的head标记。

    • 问题不在于捆绑,因为它正在运行。但是,我尝试直接链接到每个CSS文件,而不是使用捆绑包,并发生同样的奇怪。

    • 我已经完全清除了测试之间的浏览器缓存(使用chrome中的清晰浏览历史记录)并使用了多台计算机来测试它,但结果是相同的。

    • 我所说明的页面非常小,但由于这种奇怪的原因,其他更大的页面更糟糕,可能会增长600KB以上。

0 个答案:

没有答案