使用PHP和js时如何指定路径?

使用PHP和js时如何指定路径?,php,javascript,jquery,html,web,Php,Javascript,Jquery,Html,Web,为了给您提供更多的上下文,我的文件结构类似于:includes/totall/footer.php,在这个文件中,我引用了js/nav-header.js注意,includes和js文件夹都在基本文件夹中。我这样做对吗 包括/overall/footer.php: <?php include 'includes/footer.php'; ?> <script type="text/javascript" src="libs/jquery-1.10.1.min.

为了给您提供更多的上下文,我的文件结构类似于:includes/totall/footer.php,在这个文件中,我引用了js/nav-header.js注意,includes和js文件夹都在基本文件夹中。我这样做对吗

包括/overall/footer.php:

    <?php include 'includes/footer.php'; ?>

    <script type="text/javascript" src="libs/jquery-1.10.1.min.js"></script>
    <script type="text/javascript" src="libs/bootstrap/js/bootstrap.min.js"></script>
    <script type="text/javascript" scr="js/nav-header.js"></script>
  </body>
</html>


这个文件本身包含在另一个文件中,它是否与加载的顺序有关?原因是我似乎无法激发javascript文件中的任何内容。任何帮助都将不胜感激。

您的nav-header.js包含哪些内容

按照资产在html中的显示顺序从服务器请求资产。因此,nav-header.js将在jquery之后调用,但这并不意味着它将在jquery之前完成加载

此外,要加载文件,请使用绝对路径: /js/nav header.js而不是js/nav header.js 这样您就知道js/nav-header.js将从根文件夹加载


如果你在js/nav-header.js中有加载时启动的代码(不是在文档就绪时),我建议将其移动到文档就绪状态。

我建议不要使用硬编码的绝对路径,因为这会降低应用程序的可移植性

相反,设置一个
$base\u url
变量,您可以在html中回显该变量

<?php $base_url = "/"; ?>
<script type="text/javascript" scr="<?php echo $base_url; ?>js/nav-header.js"></script>

在html中

<?php $base_url = "/"; ?>
<script type="text/javascript" scr="<?php echo $base_url; ?>js/nav-header.js"></script>

使用HTML中的BASE标记和所有相对路径:D

Phil Sturgeon写了一篇关于它在CodeIgniter中的使用的文章,但本质上你不需要使用框架来使用相同的原理

您应该将文档根存储在应用程序中的某个变量中,并有一个引用它的函数,然后将其回显到基标记中。这样,当您将应用程序移动到另一个环境时,您只需在一个地方更改根,就可以了


另外,在使用base标记之前。

控制台或firebug for JS中出现了什么错误?客户端使用加载主文档的URL作为base,将相对URL解析为绝对URL。所以,在服务器端分散了多少级别的include文件并不重要,但这似乎并不重要。在没有基本url的情况下,它可以很好地加载jQuery,但javascript无法加载。我试着把它放在.js文件中:$(function(){console.log(“js-loaded”);});但它不起作用。我把同样的代码放在footer.php文件中,在那里我导入了脚本,它可以正常工作。重申一下,我的jQuery和引导文件加载得很好,但是我在chrome devtools中签了名,js甚至不在sources选项卡中。我的建议是,休息15分钟,回来看看。你很有可能会发现,这是一条简单的路径或一个打字错误。让你的眼睛休息一下。