wampserver语言 - - 本地主机上的链接断开



我目前正在使用wampserver开发一个非常简单的cms,我计划在完成后将其上传到我的保留服务器。前几天,当我通过远程服务器调试代码时,我的页面加载时没有任何样式或图像。我查看并简单地删除了一些"/",效果很好。例如,我像这样更改了URL:更改前:

<link rel="stylesheet" href="/css/styles.css"/>

更改后:

<link rel="stylesheet" href="css/styles.css"/>

当我将这些新 URL 应用于我的本地项目时,我再次遇到没有样式、图像或 js 或其他任何东西的页面......我该怎么办?

通过删除/,您可以将其更改为相对路径。

所以你现在必须考虑你的路径结构。

例如,如果项目被放置在一个文件夹中,那么根是:http://localhost/mycms/然后你去./mycms/cats你的CSS的相对路径将被转换为:./mycms/cats/css/styles.css这会破坏它。

您应该考虑使用资产的绝对路径。例如:

<link rel="stylesheet" href="//localhost/mycms/css/styles.css"/>

这可以通过定义或检测$_SERVER变量中的当前 URL 路径并在主机名前面添加前缀来实现。

因此,例如哪些存储在一个常量中,然后您可以在整个代码中使用该常量,这将导致指向 webroot 的正确绝对路径:

<?php
define('SITE_URL', rtrim(sprintf(
    '%s://%s/%s',
    isset($_SERVER['HTTPS']) || $_SERVER["SERVER_PORT"] == "443"  ? 'https' : 'http',
    $_SERVER['HTTP_HOST'],
    trim(dirname($_SERVER['SCRIPT_NAME']), '/')
), '/'));
echo SITE_URL;

然后只需在您的模板中回显它。

<link rel="stylesheet" href="<?= SITE_URL ?>/css/styles.css"/>

最新更新