【发布时间】:2021-08-31 14:34:00
【问题描述】:
我使用 NuxtJS 开发了一个 SPA (ssr: false)。构建后,javascript 和 css 文件的文件路径是相对于域的根文件夹而不是 dist 文件夹。例如<script src="/_nuxt/e247009.js"></script> 导致浏览器抛出错误
“来自“url”的资源由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止。”
我的urlcss fonts-face里面的路径也有这个问题。
我可以使用这个解决方案https://stackoverflow.com/a/61638555/8488702 解决错误,方法是像这样设置路由器选项:
router: {
base: './'
}
但是现在出现了另一个问题,那就是当我加载位于项目根目录中的 index.html 时,nuxt 路由器显示错误
找不到此页面
如何在不更改路由器选项的情况下自定义文件路径以使路由器不会中断?
【问题讨论】:
-
路由器基础可以是
'/'。为什么不使用您的 dist 文件夹作为根目录? -
@HansFelixRamos 这是导致 mim 类型错误的默认值
-
这可能是服务器错误,您使用的是本地服务器吗?
-
@HansFelixRamos 是的,这些错误发生在本地环境中。现在我将 dist 文件夹内容上传到服务器的根目录,它工作正常。你能解释一下为什么会这样吗?谢谢你。
-
对于生产,您确实需要构建(使用
yarn generate或yarn build),因此您需要为生成的dist目录提供服务。不知道为什么你在本地环境中有任何错误(使用yarn dev对吗?)但是IMO,你的错误完全与任何路径无关。而且,/_nuxt/e247009.js路径完全没有问题,这来自位于.nuxt目录中的 Webpack 缓存版本。 MIME 类型的问题主要是在您提供的格式不符合预期时引起的。
标签: javascript vue.js nuxt.js