@dmitriyuvin

Проблема подключения стилей из-за Router'a?

// Код Роутера
include "config/config.php";

include CLASSES . "Router.php";

$router = new Router();

require "routes.php";

$router->registry($routes);
$url = trim($_SERVER['REQUEST_URI'], "/");

require $router->get_url($url);

// Код путей
$routes = [
    "blog" => CONTROLLERS . "Main.php",
    "blog/user/room" => CONTROLLERS . "UserRoom.php",
    "blog/register" => CONTROLLERS . "Register.php",
];

Есть константа которая выглядит вот так - http://localhost/blog/core/libs/styles/main.css
Но так как такого пути нету в роутерах, оно даёт ошибку,
Как моно решить не добавляя путей в $routes?
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ответы на вопрос 1
aleksejjjj
@aleksejjjj
Это решается на уровне веб сервера. Файл есть - отдаётся файл, если нет то вызывается ваш PHP код. Вот условный пример для nginx:
server {
    location / {
        # Эта строка нас интересует. Сначала ищем файл
        #  и только если его нет - вызываем PHP
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы