vue-router - Vue cli路由和获取文件的问题
问题描述
我使用 VUE CLI 发布了一个项目。
当我构建我的项目时,它没有工作,我知道问题所在。
/js/* 中的 Javascript 文件不起作用,因为它们使用 vue 自行路由,而不是上传 javascript 文件,服务器返回 html 文件,我在控制台中出现错误:
未捕获的语法错误:意外的标记“<”
我找到了将所有资源(js、css、字体)放在外部目录中并编辑 index.html 的解决方案
质疑如何在 vue cli 中解决此问题?
示例:我没有获取脚本,而是mywebsite/js/app.a5fe57de.js
在此 url 中获取页面 html。
非常感谢您的帮助。
解决方案
问题来自此处.htaccess
给出的文件(我在后端使用 php):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
为了解决这个问题Rewrite mod
,我们应该将所有资产(javascripts/imgs/css ...)放在一个目录中,并在此文件夹中关闭。
1.使用配置创建文件vue.config.js
:
module.exports = {
publicPath: "/",
outputDir: "dist/",
assetsDir: "public/assets/"
}
2.通过命令构建项目后npm run build
,我们的资产(javascripts/img/css ....)在目录public
中,然后我们将这个.htaccess
文件放入其中:
RewriteEngine Off
并且构建项目将正常工作!
推荐阅读
- r - 是否有用于使行标签与列中的某些元素相同的 R 函数或命令?
- node.js - NodeJS 中的 Angular 7 部署:添加到 index.html 标头的基本 href 属性适用于主页但没有路由
- python - Pytorch autograd 引发错误:“预期 isFloatingType(grads[i].type().scalarType()) 为真,但当 loss.backward() 为假”
- apache - http://localhost 重定向到外部网站
- javascript - 如何在 TypeScript 中包装的 addEventListener 调用中正确键入事件处理程序
- python - 重复 - 如何读取 json 文件夹数据?
- python - 尝试使用 Selenium 登录 Xbox/Microsoft,但从未按下登录按钮
- python - Z3,创建数据结构/类,使用 Datatype
- r - 嵌套 if-else 语句,只测试第一个条件
- javascript - 我如何在 React Native 中赶上解雇模态