javascript - wampserver -- 本地主机上的链接已断开

标签 javascript php css content-management-system wamp

<分区>

我目前正在使用 wampserver 开发一个非常简单的 cms,我计划在完成后将其上传到我的 reserverd 服务器。 前几天,当我通过远程服务器调试我的代码时,我加载了没有任何样式或图像的页面。我查看并删除了一些“/”,效果很好。 例如,我更改了这样的 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 这会破坏它。

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

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

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

所以像 which 这样的东西存储在一个常量中,然后你可以在你的代码中使用它,这将导致到 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"/>

关于javascript - wampserver -- 本地主机上的链接已断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370300/

上一篇:css - 一起使用 Animate.css 和 Waypoints——Safari 可以,Chrome 和 FF 不行

下一篇:html - 在 Angular 4 的 *ngfor 内部完成动态绑定(bind)后,图像不会显示

相关文章:

php - 如何使用 PHP 运行 PostgreSQL LIKE 查询

html - 如何修复我的代码以便显示要点(代码随图像提供)?

javascript - FabricJS:延迟重复动画

javascript - 从单元格内更改innerHTML

php - 创建动态插入语句 - PHP - Mysql

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

javascript - 修复一个看起来不稳定的倒数计时器

javascript - Reactjs css数字之间的空白

javascript - 如何将值传递给 javascript 函数?

javascript - 垂直排序对象,对象之间留有边距空间