如何使用带有公用文件夹的PHP为我的CSS链接找到正确的路径

时间:2019-11-26 16:00:39

标签: php html css

在开发网站时,我还会做一些小型项目,这些项目会放入我的网站中。 我想将我的项目部分链接到我的项目。我希望每个项目都拥有自己的CSS文件,这样我就不会拥有太大的文件。所以这是我的问题,我在寻找链接CSS的正确路径时遇到了一些问题。

由于我使用PHP,所以我有一个公用文件夹,其主要index.php用作简单路由器。 这是我的体系结构:

|img\
|-- some images
|public\ (docroot)
|--index.php
|--js\
|----index.js
|--style\
|----partials\
|-------_projet.scss
|----main.scss (with @import 'partials/projet')
|----main.css
|templates\
|--projet\
|----files for the project
|--all my templates like header.php, footer.php...

这是位于public /中的index.php:

<?php
require "../vendor/autoload.php";

$required = null;
$projet = null;
$title = 'KumaTeK';
$uri = $_SERVER['REQUEST_URI'];

switch($uri) {
    case '/' :
        $required = '../templates/home.php';
        break;
    case '/projets/projet1' :
        $projet = '../templates/projet1/index.php';
        $title = 'Projet1';
        break;
    default :
        $required = '../templates/404.php';
        break;
}


if ($required) {
    require '../templates/header.php';
    require $required;
    require '../templates/footer.php';
}

?>

在我的header.php中,我有:

<link rel="stylesheet" href="style/main.css">

哪个可以在home.php上使用(或使用“ /”表示路由)。 但是当我进入/ projets / projet1时,我有了没有CSS的HTML。

我想知道是否有一种技术可以找到正确的路径,或者我做错了什么。 (我的图像路径也有问题。)

1 个答案:

答案 0 :(得分:1)

在评论中必须写:

<link rel="stylesheet" href="/style/main.css">

不同
<link rel="stylesheet" href="style/main.css">

在第一种情况下,该URL始终相对于您的域名,这意味着即使您的URL为http://localhost/projets/projet1,css URL也将为http://localhost/style/main.css(与您当前的URL无关)网址)。

在第二种情况下,css URL将相对于您当前的URL,这意味着即使您的URL为http://localhost/projets/projet1,css url也将为http://localhost/projets/projet1/style/main.css(相对于您当前的URL )。