【问题标题】:.less compilation error when query string is supplied.less 提供查询字符串时的编译错误
【发布时间】:2015-02-08 12:25:18
【问题描述】:

我有一个 ASP.Net MVC 应用程序,它将 .less 文件编译成 CSS。在特定情况下,如果我到达终点

http:///Account/ResetPassword?t=eyJ0eXAiOiJKV1Qi...

查询字符串导致 .less 编译警告

directive block with unrecognised format on line 1 in file '~/Content/packageForm.less': []: /beginning of file [1]: @t: eyJ0eXAiOiJKV1Qi...;
^ [2]: @import "setup.less"; directive block with unrecognised format on line 1 in file '~/Content/packageForm.less': []: /beginning of file [1]: @t: eyJ0eXAiOiJKV1Qi...;
^ [2]: @import "setup.less"; directive block with unrecognised format on line 1 in file '~/Content/IE.less': []: /beginning of file [1]: @t: eyJ0eXAiOiJKV1Qi...;
^ [2]: #notes{ directive block with unrecognised format on line 1 in file '~/Content/IE.less': []: /beginning of file [1]: @t: eyJ0eXAiOiJKV1Qi...;
^ [2]: #notes{

如果我删除查询字符串参数“t”,则不会发生编译错误。

有人有解决办法吗?

谢谢,

保罗。

【问题讨论】:

  • 您要访问的端点是否是提供已编译较少(即 CSS)的端点?
  • 端点提供 HTML,即是一个提供 HTML 的 MVC 操作。如果它是编译或重新部署后第一次命中应用程序(因此应用程序是 JIT 编译),则会发生上述情况。这是编译 .less 的时候。在 JITing 之后对该端点的后续调用则不会出现任何问题,因为 .less 已被编译。
  • @PaulHoulston 我也遇到了这个问题。你想好怎么解决了吗?

标签: css asp.net-mvc less


【解决方案1】:

此问题是由于 dotless WebOptimization Adapter 中可能存在的错误所致。

要解决此问题,请在您的 Web.config 中添加 disableParameters="true" 到无点配置部分,如下所示:

<dotless minifyCss="false" cache="true" web="true" disableParameters="true" />

【讨论】:

  • 确实,如果我应用这个解决方案,它似乎可以解决问题。但我想知道是否有另一种解决方案,因为将来我可能想使用无点参数。你有其他解决方案吗?
【解决方案2】:

我刚刚通过将dotlessdotless adapterfor System.Web.Optimization 更新到它们的最后可用版本来解决了这个问题:

  • dotless:新版本1.5.0
  • dotless adapterfor System.Web.Optimization:新版本1.3.3

有关此问题的历史记录和解决方法,请参阅修复该问题的 GitHub 问题“Empty CSS generation at startup”和the related pull request

【讨论】:

  • 这实际上应该在 dotless 1.4.3 及更高版本中修复。
猜你喜欢
  • 2013-05-05
  • 1970-01-01
  • 2020-11-30
  • 2012-11-11
  • 1970-01-01
  • 2021-06-16
  • 2015-11-15
  • 2018-01-13
相关资源
最近更新 更多