听起来很挑剔,但这让我挂了大约一个小时左右.
我在JavaScript中设置了这样的路径
const JAVASCRIPT = 'host/source/ArcJB.js';
Run Code Online (Sandbox Code Playgroud)
在我的文档中呈现如下:
<script type="text/javascript" src="host/source/ArcJ.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果我放入一个先前/它打破链接.
在PHP中,对于服务器端路径,我使用:
<?php
include_once getcwd() . "/host/source/class.ControlEntry.php";
Run Code Online (Sandbox Code Playgroud)
如果我不放入/它就会破坏它.
从概念上讲,我想我怎么知道这一点,所以我不需要经过反复试验来解决问题?
还注意到:
我的.js文件中的路径使用路径前面的路径/或不/路径.
这些用于图像查找或ajax调用.
您应该知道传递给的路径include_once是在服务器本身上解析的,而Javascript中的路径是由浏览器解析的.两者基本上遵循相同的规则:
/绝对解决.在服务器上,这是根目录(即最顶层的目录).在浏览器中,这基本上是连接主机和您指定的路径./是相对解析的,即针对服务器上的当前目录和浏览器中的路径.实现getcwd()返回类似的目录/var/www.如果你只是host/source/class.ControlEntry.php与它结合,它就会产生/var/wwwhost/source/class.ControlEntry.php.在大多数(如果不是全部)PHP SAPI上,您可以getcwd()在包含文件时省略事情,因为在包含文件时已经搜索了当前目录.在这种情况下,您不需要/.
最后,服务器文件路径不必与URL匹配!http://example.com/script.php可以位于/var/www/script.js.如果您/script.php在HTML文件中引用它,它将被正确解析.另一方面,您不应该尝试include "/script.php",这将script.php在您的文件系统的根目录中搜索一个通常不是您正在寻找的文件.