При первой загрузке моей страницы я всегда получаю эту ошибку: Refused to execute script from '<URL>' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. В результате большая часть моих javascript вообще не работает. Если я перезагружаю страницу, все работает отлично. Это происходит только в продакшене через Netlify. Моя локальная среда работает отлично каждый раз, без ошибок консоли или предупреждений.
Вот дом, когда я получаю сообщение об ошибке:
А вот dom при второй загрузке, когда все загружается правильно:
Наконец, вот мой файл html.js:
let stylesStr
if (process.env.NODE_ENV === `production`) {
try {
stylesStr = require(`!raw-loader!../public/styles.css`)
} catch (e) {
console.info(e)
}
}
module.exports = class HTML extends React.Component {
render() {
let css
if (process.env.NODE_ENV === `production`) {
css = (
<style
id = "gatsby-inlined-css"
dangerouslySetInnerHTML = {{ __html: stylesStr }}
/>
)
}
return (
<html {...this.props.htmlAttributes}>
<head>
<meta charSet = "utf-8" />
<meta httpEquiv = "x-ua-compatible" content = "ie=edge" />
<meta
name = "viewport"
content = "width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<link rel = "shortcut icon" href = {favicon} />
{this.props.headComponents}
{css}
</head>
<body {...this.props.bodyAttributes}>
{this.props.preBodyComponents}
<div
key = {`body`}
id = "___gatsby"
dangerouslySetInnerHTML = {{ __html: this.props.body }}
/>
{this.props.postBodyComponents}
<script
type = "text/javascript"
dangerouslySetInnerHTML = {{
__html: `
...some javascript code
`
}}
/>
</body>
</html>
)
}
}
Я попытался установить тип в файле gatsby-config.js, но это не решило проблему.
resolve: `gatsby-plugin-netlify`,
options: {
headers: {
"/*.js": [
"Cache-Control: public, max-age=0, must-revalidate",
"Content-Type: text/javascript"
],
},
},
},
Разобрался с фиксом:
{
resolve: `gatsby-plugin-netlify`,
options: {
mergeLinkHeaders: false,
mergeCachingHeaders: false
},
},



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проверьте вкладку «Сеть» в инструментах разработчика, чтобы узнать, что происходит с сетевыми запросами. Если вы сделаете запрос с помощью
curl, вернет ли он правильный HTML?