2013-05-10 92 views
0

我正在尝试构建一个单页动态网站,并且遇到了障碍。由于像URL:HTML包括使用PHP的CSS

index.php?page=Tutorials&Article=0 

是不是真的那么漂亮,我决定使用的.htaccess重写的URL,在这种情况下,像这样:

Tutorials/Articles/0 

但是,这意味着我的大部分包括荣获“T工作,因为我使用相对路径至网站的根路径:

js/jquery-1.9.1.min.js 

我试着用下面的代码来解决这些包含在index.php文件的开头:

$str = dirname(__FILE__); 
$str = str_replace('\\','/',$str);//since i'm using localhost for development, the paths contain backwards slahses so I replace them 
$str.='/'; 
define('ROOT_DIR', $str); 

而且包括everytinhg用PHP:

echo ROOT_DIR.'js/jquery'; 

但这种形式给出似乎并没有很好地工作,即使路径apear被确定产生:

<script src="C:/xampp/htdocs/Tzeny/js/jquery-1.9.1.min.js"></script> 

我的问题你能帮我找到另一种解决方案来正确地包含我的文件或使我的解决方案工作吗?

对于它的工作原理,所以第一页:

Tzeny/Tutorials 

的作品,但

Tzeny/Tutorials/Categories/0 

不包括任何东西。我使用了/ Tzeny /和/。请有更多想法吗?或者我应该回到正常的URL?

回答

2

您需要使用绝对路径。例如: 如果你的域名是www.domain.com/Tzeny/index.php?page=Tutorials &条= 0 到像索引的每个文件,你需要有这样的脚本:

<script src="/Tzeny/js/jquery-1.9.1.min.js"></script> 
0

只需使用绝对路径

<script src="/js/jquery-1.9.1.min.js"></script> 

如果你不使用虚拟主机的本地开发,可以使你的URL的变量的根源 - 使同一代码工作,你运行它

例无关:

<?php //pseudo code 
if (on localhost) { 
    $root = '/' . dirname(__FILE__); // example 
} else { 
    $root = '/'; 
} 
?> 

<script src="<?= $root ?>js/jquery-1.9.1.min.js"></script> 
0

如果在index.php是在文档根目录您的代码将通过设置

$ROOT = "/"; 

,如果它被服务了一个目录,你可以尝试

$ROOT = "/".str_replace(rtrim($_SERVER['DOCUMENT_ROOT'],"/", '',$ROOT); 

工作希望这可以帮助。