Отказался применять стиль из «xxx/style.css», поскольку его тип MIME («текст/html») не является поддерживаемым типом MIME таблицы стилей

#javascript #css #node.js #mime

Вопрос:

Я новичок в Google App Engine и пытаюсь разместить там проект, который я запускал локально.

Мой index.html файл отображается, но он не применяет к нему CSS. Я не совсем уверен, что такое тип MIME, и я не совсем уверен, откуда в моем коде он пытается это получить. Я просто предположил, что он просто загрузит тег, который у меня есть в моем HTML-контенте, и применит его так, как это было при использовании browsersync. Файл index.html загружается через:

 app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname, '/index.html'));
});
 

CSS загружается в файл index.html:

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

Комментарии:

1. Не могли бы вы показать свой html, где вы загружаете css ?

2. отредактированный оригинальный пост

3. Вам не нужен атрибут типа в ссылке. А также закройте тег ссылки с /> в конце. Даже если это не обязательно в html, но это в xhtml.

4. Также убедитесь, что css-файл не содержит html-тега

5. Похоже, что независимо от того, какой файл вы запросите, включая style.css, ваш сервер будет обслуживать index.html. Поскольку это файл html, а не css, браузер отклоняет его с ошибкой в вашем заголовке.

Ответ №1:

Когда вы возвращаете таблицу стилей с сервера, вы должны установить атрибут типа содержимого для заголовка text/css , т. е. У вас должно быть что-то вроде

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

app.get('/style', (req, res) => {
    res.setHeader('Content-Type', 'text/css');
    res.sendFile(path.join(__dirname, '/style.css'));
});

app.get('/', (req, res) => {
    res.setHeader('Content-Type', 'text/html');
    res.sendFile(path.join(__dirname, '/index.html'));
});


 

Ответ №2:

Постоянное исправление:

Файл server.js

 app.use(express.static('./public'));
 

И переместите все ваши статические ресурсы в общедоступный каталог в вашем проекте. Тогда ваш HTML — контент действителен.

Источник

Ответ №3:

Проблема, вероятно, может быть связана с библиотекой CSS, начинающейся с комментариев.

В процессе разработки, если таблица стилей начинается с некоторых комментариев, ее можно рассматривать как нечто отличное от CSS.

Удаление библиотеки и помещение ее в файл поставщика может решить проблему.

Еще одна возможность для Node.js приложения заключается в том, что вы должны проверить свою конфигурацию.

Пример:

 app.use(express.static(__dirname   ‘/public’));
 

Обратите внимание, что /public не имеет прямой косой черты в конце, поэтому вам нужно будет включить ее в свой параметр href в вашем HTML:

Пример:

 href=”/css/style.css”>
 

Если вы включили косую /public/ черту вперед , то вы можете просто сделать href=”css/style.css”>.

Убедитесь, что имя CSS-style.css без второй буквы «s» в конце. Это также может вызвать проблему.