0

我正在尝试建立一个单页动态网站,但遇到了障碍。由于 URL 如下:

index.php?page=Tutorials&Article=0

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

Tutorials/Articles/0

但这意味着我的大部分内容都不起作用,因为我使用的是相对于站点根路径的路径:

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';

但是这种方法似乎效果不佳,即使路径似乎可以生成:

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

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

对于第一页它有效,所以:

Tzeny/Tutorials

有效,但

Tzeny/Tutorials/Categories/0

不包括任何东西。我同时使用了 /Tzeny/ 和 /。请问还有什么想法吗?还是我应该回到正常的 URL?

4

3 回答 3

2

您需要使用绝对路径。示例:如果您的域是 www.domain.com/Tzeny/index.php?page=Tutorials&Article=0 到每个文件(如索引)中,您需要包含这样的脚本:

<script src="/Tzeny/js/jquery-1.9.1.min.js"></script>
于 2013-05-10T13:55:31.040 回答
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>
于 2013-05-10T13:58:25.383 回答
0

如果 index.php 在文档根目录上,您的代码将通过设置来工作

$ROOT = "/";

如果它是从目录中提供的,您可以尝试

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

希望这可以帮助。

于 2013-05-10T13:59:56.277 回答