【问题标题】:How to use @RenderPage to include CSS content inline - MVC Razor如何使用 @RenderPage 内联包含 CSS 内容 - MVC Razor
【发布时间】:2014-02-21 01:16:27
【问题描述】:

我目前正在将一个页面从我的项目导出到 Excel,这将不允许链接外部内容,例如外部 CSS。

我想要实现的是一种简单的方法,即在我的view 中包含一个 CSS 文件,但直接从一个 CSS 文件调用它,该文件将被 Visual Studio 自动缩小。

所以,在我看来,我已经尝试过了:

<style type="text/css">
   @RenderPage("~/CSS/_ExportStyles.min.css")
</style> 

但这样做会返回以下错误:

“/”应用程序中的服务器错误。

以下文件无法呈现,因为其扩展名为“.css” 可能不支持:“~/CSS/_ExportStyles.min.css”。

我知道可行的是将 CSS 放在一个普通的 .cshtml 文件中并包含它,但我将失去 ".min" 文件的能力,该文件使文件大小保持较小并允许我自动剥离cmets等

【问题讨论】:

  • @Styles.Render("~/CSS/_ExportStyles.min.css") 不起作用吗?
  • 恐怕不是@markpsmith 会添加到文件的链接并且不包含内联内容。当您打开导出时,您会收到错误消息Problems During Load - Missing file:C:\CSS\_ExportStyles.min.css
  • 把css文件放在那个位置,即C:\CSS\是否有效
  • 可以,但是 `C:` 在我的本地机器上...问题是一旦文件被导出,它会在本地机器上而不是远程服务器上查找 CSS。我可以使用完整的文件路径,但我不希望从服务器中提取 CSS 文件,我希望它们是独立的,不依赖于 Internet 连接。
  • This might help - 第二个答案演示了一个扩展,允许您嵌入 css 而不是链接到它。

标签: html css asp.net-mvc razor


【解决方案1】:

所以,原来@RenderPage 不是我要找的……

我需要的是这样的:

@Html.Raw(File.ReadAllText(Server.MapPath("~/CSS/_ExportStyles.min.css")))

【讨论】:

  • 那么,每次请求都会从磁盘重新读取文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 2018-01-29
  • 2021-01-31
  • 2018-10-20
  • 1970-01-01
相关资源
最近更新 更多