与HTML文件夹不同的Javascript

prk*_*kmk 0 html javascript

我是Web开发的新手。为了安全起见,我将文件存储在不同的文件夹中时遇到问题。这是返回错误的索引页

<head>
   <script src="../scripts/script.js"></script>
</head>
<body>
   <?php include "../php/page.php"; ?>

   Other code here...
</body>
Run Code Online (Sandbox Code Playgroud)

我的文件结构如下

www/
   html/
      index.php

   scripts/
      script.js

   php/
      page.php

Run Code Online (Sandbox Code Playgroud)

我不明白为什么包括php文件可以工作(提供的示例代码中的第5行)而包括javascript不起作用的原因(第2行)。我想您对此错误感兴趣,因此,这就是Google Chrome浏览器的控制台上显示的内容

Failed to load resource: the server responded with a status of 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

它还显示了该资源的链接,并且似乎在寻找my.server.address / scripts / script.js,就像它不在乎../部分一样。有人可以解释这种行为吗?

Que*_*tin 5

PHP解析计算机文件系统上的路径。

Web浏览器解析URL上的路径。

您的HTTP服务器已http://my.server.address/映射到www/html文件系统上。

因此../scripts/script.js/… 上升到一个级别/(因为这是最高),然后再下降到/scripts然后下降到/scripts/script.js

浏览器向HTTP服务器询问,/scripts/script.js并将其映射到文件系统- www/html/scripts/script.js并返回a,404因为该文件不存在。

浏览器只能读取Web服务器将发送给它的数据,并且通过将scripts目录保留在文档根目录之外,您无法通过Web服务器使用它。

  • 您不能阻止人们阅读您的js文件。而你不想。您正在尝试在页面上包含js文件。您实际上是希望人们阅读它 (3认同)