【问题标题】:HTML src not correctly accessing required filepathHTML src 未正确访问所需的文件路径
【发布时间】:2018-01-11 15:07:44
【问题描述】:

我已经包含了一个文件夹,用于保存我不希望人们轻易查看的文件,例如 php 连接文件中的密码。此文件夹称为“inc”,与“public_html”文件夹处于同一级别。我已将带有数据库连接详细信息的 php 文件放在“inc”文件夹中,并使用“../inc/”和文件名访问它,它运行良好 - 即:

require_once('../inc/connection.php');

我还想将 javascript 文件放在“inc”目录中,并通过 HTML 中的 src 路径访问它们。我尝试了与 php 文件相同的方法 - 使用 '../inc/' 和文件名来访问文件,但由于某种原因它不起作用:

<script src="../inc/moment.js"></script>

我在 Stack Overflow 上阅读了与此类似的查询,并遵循了正确的方法(本地和服务器上),但无论出于何种原因,它都没有访问 js 文件。但是,如果我将“inc”文件夹重新定位到“public_html”文件夹内(仅适用于 js 文件),它确实可以工作,但这违背了我想要实现的目的 - 在我看来不应该工作。

php 是否处理与 HTML 的 src 不同的目录访问,因此使用 '../' 的行为不同。我认为它不应该,但我无法让它工作。

非常感谢任何帮助!

【问题讨论】:

  • 您是否授予访问该文件夹的权限?
  • 您是否尝试过使用完整路径?
  • 尝试 $_SERVER['DOCUMENT_ROOT'].'/path/from/root' 包含
  • 那个目录被命名为public_html,因为你应该把所有你想在网上公开可用的东西放在那里。 “我还想将 javascript 文件放在 'inc' 目录中,并通过 HTML 中的 src 路径访问它们。” - 这是不可能的。您的系统是故意这样设置的,public_html 中的内容可通过 Web 上的 HTTP 获得 - 而该文件夹之外的所有其他内容均不可用。 // 你为什么首先想要这个?您是否认为可以通过这种方式“保护”您的 JavaScript 代码?当然不能。
  • 谢谢大家 - 我现在明白我的错误了。现在都整理好了!

标签: javascript php html


【解决方案1】:

具有 source 属性的脚本标记是 html,它告诉浏览器去获取文件。可以使用相对路径,但您的 js 文件需要可供公众访问;它们根本无法隐藏在公共根目录之外。

PHP 是一种在您的服务器上运行的脚本语言。当它在正确的上下文中看到 ../ 时,例如您提到的 require_once 指令,它会将其转换为您正在查找的目录的正确路径,因此它可以查看公共目录之外的内容。

敏感项目不要放在js里,放在服务器上受保护的文件里。如果您在运行时需要该信息,请进行 ajax 调用以访问和使用数据,以便仅为客户端提供所需的信息。

【讨论】:

  • 非常感谢您的回复 - 现在很清楚为什么它对我不起作用了。我以为我可以像使用 php 文件一样使用该文件夹。我现在已经相应地更新了我的文件和结构 - 再次感谢!
猜你喜欢
  • 2015-08-07
  • 2015-02-02
  • 2021-07-18
  • 2020-04-23
  • 1970-01-01
  • 2014-08-17
  • 2021-08-13
  • 1970-01-01
  • 2017-12-26
相关资源
最近更新 更多