php - 404 not found - CSS 和 JS 当 url 以/结尾时

标签 php html css

这个问题与我在上一个问题中提供的相同 CMS 和文件有关:PHP Local CMS CSS Error .

我现在很迷茫。如果我访问 http://localhost/cms/admin CSS 和 JS 使用 href (CSS) http://localhost/cms/includes/admin/CSS/panel.pages.css 得到完美执行.但是,当我访问 http://localhost/cms/admin/ (在末尾添加了 /),href 变成了 http://localhost/cms/admin/includes/admin/CSS/panel.pages.css .

网站的任何链接都通过 .htaccess 重定向到 index.php:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cms/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php/$1
</IfModule>

在 index.php 文件中,URL 得到控制。如果路径以 admin 开头,则包含 admin.main.php。

if (isset($_SERVER['PATH_INFO'])) {
    $request_url = $_SERVER['PATH_INFO'];

    while (substr($request_url, -1) == '/') {
        $request_url = rtrim($request_url, '/');
    }

    $explode_url = explode('/', $request_url);
    if (isset($explode_url[1]) && $explode_url[1] == 'admin') {
        require('includes/admin/admin.main.php');
    }
}

admin.main.php 控制请求是否是/admin/pages,如果是,则包含另一个文件。

global $request_url;

if ($request_url == '/admin/pages') {
    require('includes/admin/panel/panel.pages.php');
}

在 panel.pages.php 的头部:

<?php
echo <link rel='stylsheet' type='text/css' href='includes/assets/fonts/Roboto/Roboto-Thin.ttf');
echo <link rel='stylsheet' type='text/css' href='includes/admin/CSS/panel.pages.css'>
?>

编辑:我对这个解决方案并不完全不满,如果您对其他方法有建议,请分享。

最佳答案

我猜你在你的 html 中有:

<link href="../includes/admin/CSS/panel.pages.css">

所以当你在这里:http://localhost/cms/admin

.. 告诉它上一层(到 http://localhost/cms/)然后添加 includes/admin/CSS/panel.pages.css,为您提供 http://localhost/cms/includes/admin/CSS/panel.pages.css

当您在此处:http://localhost/cms/admin/ 时,它会将其视为您在类似 http://localhost/cms/admin/index 的地方

.. 告诉它上一层(到 http://localhost/cms/admin/)然后添加 includes/admin/CSS/panel.pages.css,为您提供 http://localhost/cms/admin/includes/admin/CSS/panel.pages.css

最佳实践 (IMO) 是不使用(完全?)相对路径 - 您的 CSS href 应始终以 / 开头,以便它相对于文档根。

<link href="/cms/includes/admin/CSS/panel.pages.css">

关于php - 404 not found - CSS 和 JS 当 url 以/结尾时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104820/

相关文章:

javascript - 使用 JavaScript 更改特定 div 中特定字符的 CSS

javascript - 滚动条在jstree中不断向下滚动

jquery - 如果鼠标悬停超过 2 秒然后显示其他不?

css - 如何让页面的页脚首先显示在 HTML 中

php - 为什么 $_SERVER ["PHP_AUTH_USER"] 和 $_SERVER ["PHP_AUTH_PW"] 没有设置?

php - 如何在 echo 中放置开始和结束 PHP 标记?

php - 我的表行不与 PHP 相呼应

html - 悬停时阻止表格元素移动位置?

javascript - 循环数据表行

javascript - 无需离开页面即可触发 API url