是否可以包含css文件的文件夹?

时间:2010-08-26 23:26:42

标签: css

我有大约100个样式表,它们将相同的样式应用于一个文档,就像zen css页面一样,我可以在头部逐个列出这些文件,但它们都在同一个文件夹中,所以看起来有一个更方便。那是......?

我在ruby中使用它,但我宁愿只列出一个文件夹。

<% Highlight.all.each do |hl| %>
    <%= stylesheet_link_tag "css/#{hl.name}" %>
<% end %> 

看着禅园这是他们的来源


在发布一些答案后添加

这是一个文件

<style type="text/css" title="currentStyle" media="screen">
@import "/205/205.css";</style>

这是第二个CSS样式

<style type="text/css" title="currentStyle" media="screen">
    @import "/001/001.css";
</style>

什么是@import?这是做什么意思?

5 个答案:

答案 0 :(得分:7)

无论如何都无法使用CSS,HTML或JS自动下载整个文件夹(或目录树中包含的所有文件)(尽管可以使用JS +服务器端脚本)。

我发现的最佳解决方案是编写一个shell脚本,将项目中使用的所有CSS / JS文件打包成一个文件。这不仅可以改善生产站点上的页面加载时间,还可以轻松压缩代码。

这里有几个链接可以帮助您:

答案 1 :(得分:2)

不能仅使用CSS和HTML来包含文件目录。您可以使用包含其他文件的一个文件,为您提供更加模块化的文件插入方式:

@import url("stylesheet1.css");
@import url("stylesheet2.css");
@import url("stylesheet3.css");
...

如果您可以使用服务器端语言,则可以通过多种方式自动插入文件。

答案 2 :(得分:1)

  1. 您可以创建一个服务器端脚本,给定一个路径,将包含其中的所有css文件,并将返回连接的响应。

  2. 您可以静态连接一次文件,只需提供一个css文件。每当修改目录中的任何文件时,您都需要重新应用连接过程。

  3. 在主要css文件中使用@import url("");,如@Dustin Laine in the other answer所示。

  4. 每种方法都有一些优点和缺点:

    • 对于#1:您需要编写脚本,或使用现有脚本。您还可以实现一些简单的缓存机制,以便不在每个请求上获取和连接文件。好消息是css仅在一个HTTP请求中提供。

    • 对于#2:与上述类似。另外一个缺点是你必须手动触发css文件的打包作为一个连接文件。您的Web服务器应该能够非常有效地提供静态文件,但通过适当的缓存,以前的解决方案可以像这个一样高效。

    • 对于#3:可能是最简单的方法,但这会为每个CSS文件发出单独的HTTP请求。除了对Web服务器的额外命中外,这对前端渲染性能没有帮助。有数百个css文件,我认为我不会考虑这个选项。

答案 3 :(得分:1)

从性能的角度来看,您可能应该将它们合并到服务器端。

您没有提及您的语言或架构,但这些文件有tools for concatenating and minifying个。

答案 4 :(得分:0)

我会做这个服务器端...

让指向其他主题的链接传递一个参数,称之为ThemeID,然后是

<link href="styles/<%= Request.ThemeID %>.css" rel="stylesheet" type="text/css">