1.前端路由设置为history模式:
(1)mode: 'history' (这时候已经去掉"#"号,但是子页面刷新时会报404)
(2)vue-cli 3 配置 baseUrl: '/'(否则子页面刷新应用不到外部文件(因为路径改变了,所以用绝对路径即可))
2.注意匹配好路由的path和实际发布时的path (否则打开index.html后显示一片空白)
3.apache配置:
(1)在public新建.htaccess(apache配置文件)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
(2)让apache支持mod_rewrite
找到apache安装目录“etc/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。
(3)在对应的发布文件夹允许override
在httpd.conf 文件里,通过Ctrl+F找到对应的DocumentRoot 里的“AllowOverride None”,修改为"AllowOverride All"
4.必须!重启apache
sudo apachectl restart