我有大约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?这是做什么意思?
答案 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)
您可以创建一个服务器端脚本,给定一个路径,将包含其中的所有css文件,并将返回连接的响应。
您可以静态连接一次文件,只需提供一个css文件。每当修改目录中的任何文件时,您都需要重新应用连接过程。
在主要css文件中使用@import url("");
,如@Dustin Laine in the other answer所示。
每种方法都有一些优点和缺点:
对于#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">