React Router:拒绝执行脚本或样式

Posted

技术标签:

【中文标题】React Router:拒绝执行脚本或样式【英文标题】:React Router: Refused to execute script or styles 【发布时间】:2018-12-15 07:01:47 【问题描述】:

当我浏览 http://localhost:8080/create 时,它工作正常,但浏览 http://localhost:8080/create/344 或 http://localhost:8080/edit/224 时出现此错误:

拒绝应用样式来自 'http://localhost:8080/edit/dist/main.css' 因为它的 MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且严格的 MIME 检查已启用。

2345:12 GET http://localhost:8080/edit/dist/bundle.js 404(未找到) 345:1

拒绝执行脚本 'http://localhost:8080/editt/dist/bundle.js' 因为它的 MIME 类型 ('text/html') 不可执行,严格的 MIME 类型检查是 已启用。

这是我的代码:

<BrowserRouter>
    <Switch>
        <Route exact=true path="/" component=Dashboard />
        <Route path="/edit/:id" component=EditPost/>
        <Route path="/create" component=AddPost />
        <Route component=NotFoundPage/>
    </Switch>
</BrowserRouter>

请查看此截图:

这是我的 webpack 配置文件:https://pastebin.com/d5vx8niQ 项目文件:https://drive.google.com/file/d/1IYcuJTbklXYi53XvIcNRJtb-tLOO4g1j/view?usp=sharing

【问题讨论】:

我尝试了两天,但我找不到任何解决方案:(这是我的文件,你可以查看send.firefox.com/download/91cc3b75a1/#lPUaHFNmniQYtl6zyc-s7g 当我运行 webpack 开发服务器并导航到一个不存在的页面时,我在浏览器控制台中收到 404,并且许多 css 和 js 文件触发了相同的 MIME 类型错误。它们会触发该错误,因为如果您直接访问这些资产的链接,您将看到由 webpack 生成的 404 页面,它是 HTML,而不是您的应用所期望的 CSS 或 JS。这是一个拼写错误,但从 webpack 向你抛出的内容来看,这并不是很明显 【参考方案1】:

只需在您的 HTML 中使用/dist/main.css/dist/bundle.js 而不是dist/main.cssdist/bundle.js

【讨论】:

【参考方案2】:

在链接所有 css 文件之前,在 index.html 头中添加 &lt;base href="/"&gt;。 (来源:https://github.com/froala/angular-froala/issues/170)

【讨论】:

以上是关于React Router:拒绝执行脚本或样式的主要内容,如果未能解决你的问题,请参考以下文章

react-native-router-flux 在本机基本页脚选项卡中导航

页眉/页脚导航 react-router-dom 和 antd 菜单和路由器问题

Chromium 的 XSS 审计员拒绝执行脚本

ksh脚本的执行时间

使用 react-router-v4 对路由执行身份验证

expect批量同步或执行命令工具