将css数据存储在数据库中并将其称为类似于css文件的最佳方式是啥
Posted
技术标签:
【中文标题】将css数据存储在数据库中并将其称为类似于css文件的最佳方式是啥【英文标题】:What is the best way to store css data inside database and call it similar to how a css file would be将css数据存储在数据库中并将其称为类似于css文件的最佳方式是什么 【发布时间】:2013-04-09 13:59:51 【问题描述】:我正在尝试将 css 文件存储在数据库中,并使用 php 以最有效的方式调用它们。我知道我可以包含一个 style.php 文件,然后进行查询以获取数据;但是,不确定这是否是最好的方法。我宁愿没有
<style>
#blah
#blah 2
etc.
</style>
显示在每个页面上。我试图使这项工作类似于典型的 css 文件的工作方式,它只是一个类似于下面方式的链接。我读过关于人们使用 html页面:
<link rel="stylesheet" type="text/css" href="style.php" />
style.php 页面:
header("Content-Type: text/css");
但是,我们也发现这不适用于 IE。
那么对于如何以最佳方式为所有浏览器执行此操作,有人有什么建议吗?
【问题讨论】:
我发布这个不是重复的。我发布这个是为了找到一个最有效的解决方案。他在问为什么它不起作用。我不是在问那个。我以前看过那篇文章。我正在寻求适用于所有浏览器的解决方案,因为该方法在任何浏览器中都不适用于我。我刚刚发布了它以表明我已经尝试并研究了它。仅仅因为我把代码放在那里并不意味着我在问同样的问题 这样做或链接css文件或您将使用的任何方法都是相同的安全级别,并且我认为具有相同的性能,所以如果所有方法都相同,为什么您需要这样做?尽量不要重塑层 :) @KDJ127 我只需要数据库里面的css。我不是想提高安全性。 一种方法是使用 htaccess 将文件名从 .php 重写为 .css,然后它将充当任何 css 文件... @jtheman 这似乎是个不错的主意。我该怎么做?我知道如何进行基本的重写;但是,不确定如何在页面加载 php.ini 后重写扩展。不确定这是否有意义。 【参考方案1】:我在这里发布我的建议作为答案。
如果您没有 .htaccess 文件,请尝试添加。包括以下行:
RewriteEngine on
RewriteBase /
RewriteRule ^style\.css$ style.php [T=application/x-httpd-php,L]
这会将style.css
重写为style.php
并将其作为可执行脚本正确对待。请记住保留标题,以便返回的文件与静态 css 文件相同。另请注意,css 保留在浏览器缓存中,因此要实际重新加载 css,您需要更改 htaccess 中的缓存设置、更改文件名或告诉访问者手动重新加载页面。
【讨论】:
您的访问者浏览器将向您的服务器查询文件 style.css,服务器返回伪装成 css 的 php 生成的文件。 在我的 style.php 页面中,我有从数据库加载 css 的 php 代码。然后在索引页面上,我有: -> 对吗?因为我有这个并对其进行了测试,但它没有设置页面样式。 是的,这是正确的,但您需要让重写工作。请务必使用您首选的调试工具检查文件是否已实际加载。您也可以尝试直接加载 style.css 并查看是否可以访问它。【参考方案2】:我会创建一个 javascript 类并使用 JQuery。每个查询都将使用 addClass 设置正确的类。您要添加的类将在 javascript-class 中动态创建。
【讨论】:
以上是关于将css数据存储在数据库中并将其称为类似于css文件的最佳方式是啥的主要内容,如果未能解决你的问题,请参考以下文章