我有两个文件:
1。- root/folder/folder/themes/themeindex.php
和
2。- root/index.php
我想在index.php
中包含themeindex.php
,所以当你进入root
目录时,它会加载主题而不带你到(或显示你)root/folder/folder/themes/
路径。
我正在努力寻找或找出一种方法来包括themeindex.php
文件,但保持其themes
文件夹的url本地。
意思我
<link rel="stylesheet" type="text/css" href="style.css" />
将保持原样,我不需要把它变成:
<link rel="stylesheet" type="text/css" href="/folder/folder/themes/style.css" />
我希望这一切都有意义。
编辑:希望我对原因的解释能对你有所帮助。
1。-我希望最终的开发人员能够直观地创建主题尽可能因此,url尽可能保持简单和直观。
2。-我需要将活动主题包含到
root
中目录,因此当打开root
时它会自动加载。所以如果你把我的第一个理由和我的第二个理由结合起来,那么你可能会理解url保持本地和易于访问是多么重要理解。
您可以请求style.php来代替style.css,这是一个您定义的使用导入root/folder/folder/themes/style.css
并直接回显它的文件。
你可以在你的代码中给出一个基本标签,并将它指向:存放CSS文件的文件夹
http://www.w3schools.com/tags/tag_base.asp在根。Htaccess 文件,添加下一行:
RewriteEngine On
RewriteRule ^style.css$ /folder/folder/themes/style.css [L]
包含主题文件很简单:
include('root/folder/folder/themes/themeindex.php');
另一个问题是HTML特有的。HTML需要有文件的web路径(而不是绝对路径),这样它才能加载并使用它。
你能做的最好的事情就是:
<link
rel="stylesheet"
type="text/css"
href="<?php echo $theme_dir; ?>style.css"
/>
,但仍然会暴露您的主题目录。你为什么要把目录藏起来?
对评论的回应:
如果你把我上面的代码,让你的开发人员知道如何构建自己的内容目录。你所需要做的就是跟踪$active_theme_root
之类的东西,并将其返回以加载自己的自定义主题。据我所知,你不能设置一个HTML包含目录,所以HTML需要知道所有所需资源的web路径
最好的解决方案可能是让他们为所有主题使用全局样式表文件夹("root/stylesheets")。然后,它们将以一个相对的庄园链接到这个全局文件夹:
<link rel="stylesheet" type="text/css" href="stylesheets/mytheme/style.css" />