【问题标题】:Include PHP file's JS, Css包含 PHP 文件的 JS、Css
【发布时间】:2013-05-25 10:42:54
【问题描述】:

我正在尝试在另一个目录中包含一个 PHP 文件。

这是我的文件结构

settings\
    manage.php

website \
    index.php
    main.js
    main.css

对于manage.php

echo 'Welcome to the manager! Here is your website:';
include('../website/index.php');

index.php

 <script src='main.js'></script>
 <link rel="stylesheet" type="text/css" href="main.css">

所以,当我加载 manage.php 时,我没有得到 main.js 或 main.css。我怎样才能让它工作?也许包括不是正确的方法?我无法修改网站文件夹中的任何内容。

[我知道 iFraming 是一种可能的解决方案,但我希望得到另一个答案]

【问题讨论】:

  • 通常最好使用绝对网址与相对网址。
  • 网站文件夹的内容,用户不知道里面会是什么
  • 我认为框架是最好的解决方案,因为您似乎在manage.php 文件中包含了一个完整的页面/站点。这可能会导致无效的 html(多个 htmlbody 标签等)和覆盖您的(或相反的方式)的用户样式无论如何都会弄乱您的设计,即使您设法包含正确的资产。
  • 是的,你的 manage.php 真实环境看起来像 frames 是他们需要的,我认为他们在极少数情况下是这样的。去找他们。没有人会直接将第三方 html 代码放在他们的管理面板文档中。
  • @DachiN。更糟糕的是,php代码。在我之前的评论中,我什至没有触及安全隐患......

标签: php javascript css include


【解决方案1】:

这里的问题是,当浏览器加载/settings/manage.php 时,它会请求不存在的/settings/main.js/settings/main.css

您可能需要将 index.php 中的 html 更改为如下内容:

<script src="/website/main.js"></script>
<link rel="stylesheet" type="text/css" href="/website/main.css">

请注意,我已根据您的目录布局对您的网址做出了一些假设,因此您可能需要调整我的解决方案以使其适合您

【讨论】:

  • 他无权访问website/目录
【解决方案2】:

由于您无法编辑 /website/ 内容,您应该尝试使用这个丑陋的代码来启动。

在您的 manage.php 中的 include 语句之前添加以下内容

echo('<base href="../website/">');

如果它适合您,那么您可以考虑在包含 html 文件之前使用 PHP 发送正确的标头,而不是直接回显基本标记。

请考虑jeroen的cmets作为脚踏实地的解决方案并使用框架

【讨论】:

  • +1 如果 OP 有权执行此操作,则可能通过 .htaccess 文件更清洁的解决方案。
  • 是的,如果不是,他可以使用ob_* 方法通过包含(非输出)获取整个/website/index.php,然后使用Regexp&lt;base href=.. 代码放在适当的位置,然后全部输出。
  • 没错,但正如我刚刚在问题下方评论的那样,框架似乎可能是要走的路(取决于具体情况)。
  • 我可以访问 htaccess!这个解决方案效果很好。什么是 htaccess 解决方案?
  • 另外,与此解决方案相比,iFrames 不慢吗?
【解决方案3】:

根据问题下方的评论:如果您想为您的用户包含一些功能/代码(而不是相反;您在代码中包含用户的东西),您应该查看auto_prepend_file 指令。

基本上,您在 php.ini 文件中指定要在主文件之前添加(作为require)某个 php 文件。

编辑:由于您无权访问 php.ini,但您可以使用 .htaccess 文件,您可以将其放入您的 .htaccess

php_value auto_prepend_file "/path/to/your/file.php"

【讨论】:

  • 感谢回复,但我无权访问 php.ini
  • @AA 您也可以在.htaccess 文件中设置这些值,请参阅我的编辑。
  • 谢谢,我在浪费时间尝试自己的方法,哈哈。谢谢,我搞定了。
猜你喜欢
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 2014-04-07
  • 1970-01-01
相关资源
最近更新 更多