使用相对于 root 的 url 和本地测试的问题

Posted

技术标签:

【中文标题】使用相对于 root 的 url 和本地测试的问题【英文标题】:using root-relative urls and problems with testing locally 【发布时间】:2011-12-19 23:48:24 【问题描述】:

我正在使用 XAMPP 在本地测试站点,但在使用根相对 URL 时遇到问题,因为根是 http://localhost/ 而不是存储站点文件的 http://localhost/test-site/。显然,当我将站点上传到远程服务器时,一切正常,但是当样式表甚至没有被加载时,它会使本地测试变得烦人。

有没有办法解决这个问题?

MTIA。

(Mohamed,我不知道你为什么要编辑我的标签——我的帖子中没有提到 php,所以我不知道你为什么添加 php 作为标签。此外,该帖子与 html 和 localhost ,这就是为什么我使用“html”和“localhost”作为标签并恢复标签的原因。如果我错误地标记帖子,我会很感激解释为什么以及如何确保我将来正确标记帖子。谢谢.)

【问题讨论】:

【参考方案1】:

您可以在设置文件或 index.php 中使用常量:

define('LOCAL_URL', 'http://localhost/test-site/');
define('DISTANT_URL', 'http://domain.tld/');
define('DEV_VERSION', true);

然后:

if(DEV_VERSION)
    define('URL', LOCAL_URL);
else
    define('URL', DISTANT_URL);

因此您可以在代码中简单地使用 URL 常量,例如:

<link rel="stylesheet" type="text/css" href="<?php echo URL; ?>style/site.css" />

优点是它适用于所有情况。

而且添加调试控件也很简单:

if(DEV_VERSION)
    error_reporting(E_ALL ^ E_DEPRECATED ^ E_USER_DEPRECATED);
else
    error_reporting(0);

【讨论】:

-1 表示 fery 最后一个代码 sn-p。将错误报告设置为 0 是开发人员可以做的最愚蠢的事情。 显示错误应该被关闭,而不是错误报告。您如何得知网站上的所有错误? 谢谢,这真的很有用!根据上面 Col.Shrapnel 的评论,我不会将错误报告设置为 0,但这非常有帮助。谢谢你们!【参考方案2】:

最方便的解决方案是为每个测试站点创建一个专用域。 我确信 XAMPP 甚至有一些工具可以完成这项任务,使这几个配置文件编辑自动化

【讨论】:

以上是关于使用相对于 root 的 url 和本地测试的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何测试 URL 字符串是绝对的还是相对的?

php开发中,取绝对路径$_Site_Roots = substr(dirname(__FILE__), 0, -4)

CakePHP - Router::url() 生成相对于当前页面的 url

部署本地gitlab

在本地主机上工作时的相对 URL [关闭]

在本地主机上运行的 Vue 应用程序中使用带有 php 文件的 JavaScript fetch() - 相对 URL 问题