首页 > 解决方案 > 即使与 index.php 位于同一目录中,CSS 和 JS 也不会加载

问题描述

我觉得我一定错过了一些非常明显的东西,因为我以前从未发生过这种情况!

我正在运行运行以下命令的本地 PHP 服务器:

php -S localhost:8888 index.php

当我转到 URL 时,HTML 和所有 php 代码运行得很好。

但是,每当我添加脚本标记以在标头中添加 JS 时,我都会收到以下错误:

Uncaught SyntaxError: Unexcepted token <

当我尝试添加 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>

脚本.js:

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

控制台错误日志:

控制台错误

添加我当前项目结构的图像:

在此处输入图像描述

标签: phphtmltags

解决方案


您应该/在路径的开头使用。根据您的更新问题,您的路径变为/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>

有关绝对路径和相对路径的更多信息

  • 如果路径是从系统根目录开始构建的,则称为绝对路径。
  • 如果路径是从当前位置开始构建的,则称为相对路径

最好的方法:你应该像在 config.php 文件中一样创建基本 url

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

你可以这样使用

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

<link rel="stylesheet" href="<?php echo BASE_URL; ?>/styles.css" />

推荐阅读