#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» в конце. Это также может вызвать проблему.