CSS и JS не будут загружаться, даже если они находятся в том же каталоге, что и index.php

Я чувствую, что должен упустить что-то очень очевидное, потому что со мной никогда не случалось этого раньше!

Я запускаю локальный PHP-сервер, выполняя следующую команду:

php -S localhost:8888 index.php

Когда я перехожу по URL-адресу, HTML и весь php-код работают нормально.

Однако всякий раз, когда я добавляю тег script для добавления JS в заголовок, я получаю следующую ошибку:

Uncaught SyntaxError: токен без исключений ‹

И когда я пытаюсь добавить файл CSS, я получаю эту ошибку:

Ресурс интерпретируется как таблица стилей, но передается с типом MIME text/html: "http://localhost:8888/assets/style.css".

Независимо от того, пытаюсь ли я включить заголовок с помощью PHP include:

<?php include("../includes/layouts/header.php"); ?>

Или напрямую добавляя заголовок и эти импорты в index.php, я всегда получаю эти ошибки.

Моя догадка заключалась в том, что это была проблема с деревом каталогов. Но я даже поместил файлы CSS и JS в тот же каталог, что и index.php, и добавил код заголовка в index.php, но все равно получаю эти ошибки.

Код заголовка

<!DOCTYPE html Public "HTML TEMPLATE">
<html lang="en">
<head>
    <title>Title</title>
    <link rel="stylesheet" href="style.css" media="all" title="no title" type="text/css" charset="utf-8">
    <script src="script.js"></script>
</head>
<body>
<div id="header">
    <h1>Header</h1>
</div>

script.js:

$( document ).ready(function() {
    console.log( "ready!" );
});

Журнал ошибок консоли:

ошибки консоли

Добавление изображения моей текущей структуры проекта:

введите здесь описание изображения


person Alkarin    schedule 12.10.2018    source источник
comment
Вы должны использовать относительные URL-адреса из корня документа, добавляя / перед URL-адресом: href="/path-from-doc-root/style.css" и src="/path-from-doc-root/script.js" и т. д. Таким образом, все ссылки и ссылки будут работать независимо от того, под каким URL-адресом они находятся. Если это не сработает, покажите нам свою структуру файлов/папок.   -  person Magnus Eriksson    schedule 12.10.2018
comment
проверьте свою строку jscript.js 3 и опубликуйте ее.   -  person markantonay    schedule 12.10.2018
comment
Я добавил код JS и изображение моей текущей структуры проекта.   -  person Alkarin    schedule 12.10.2018
comment
добавить ‹script src=cdnjs.cloudflare .com/ajax/libs/jquery/3.3.1/› перед тегом script script,js   -  person markantonay    schedule 12.10.2018
comment
Раньше у меня был скрипт для включения jquery. Однако даже с пустым файлом JS я все равно получаю ту же ошибку на script.js:3   -  person Alkarin    schedule 12.10.2018
comment
в script.js вы alt + a и удалили его? может быть некоторое пространство происходит это.   -  person markantonay    schedule 12.10.2018
comment
Я могу подтвердить, что пробелов нет.   -  person Alkarin    schedule 12.10.2018
comment
попробуйте поставить заголовок и вставить 1 файл и проверьте, не пропустили ли вы в нем какие-то ‹.   -  person markantonay    schedule 12.10.2018


Ответы (1)


вы должны использовать / в начале пути. в соответствии с вашим вопросом об обновлении ваш путь становится /public/assets/style.css. но снова я рекомендую вам использовать лучший способ

link rel="stylesheet" href="/public/assets/style.css" media="all" title="no title" type="text/css" charset="utf-8">
    <script src="/public/assets/script.js"></script>

Еще немного информации об абсолютном пути и относительном пути

  • Если путь строится, начиная с корня системы, он называется абсолютным.
  • Если путь строится, начиная с текущего местоположения, он называется относительным.

Лучший способ: вы должны создать базовый URL, как в файле config.php

define('BASE_URL', 'http://example.com');

и вы можете использовать вот так

<?php
    include('config.php');
?>

<link rel="stylesheet" href="<?php echo BASE_URL; ?>/styles.css" />
person Bilal Ahmed    schedule 12.10.2018
comment
Эй Билал. Я обновил пути в index.php на /public/assets/style.css и /public/assets/script.js, но проблема не устранена. - person Alkarin; 12.10.2018
comment
@Alkarin, ты запускаешь сервер из public/, верно? Тогда public это ваш /, уберите его с пути - person msg; 12.10.2018
comment
@msg Я нахожусь в каталоге public, когда запускаю php-сервер, правильно. Установка путей к /assets/filename по-прежнему вызывает те же ошибки. - person Alkarin; 12.10.2018
comment
@BilalAhmed в основном посте уже есть скриншот ошибок консоли. Все еще получаю те же самые ошибки, те же строки и все такое. - person Alkarin; 12.10.2018