Vue 路由器托管问题 apache2
Vue Router hosting issue apache2
我在我的 vue 应用程序中使用历史记录模式,当我构建项目并尝试 运行 它脱离服务器时,只有大约一半的路由正常工作。另一半return一个404.
我浏览了文档并检查了 SO 上类似问题的所有其他答案,none 的解决方案对我有用。
我试过在根 dist 文件夹中添加一个 .htaccess 文件,我试过在默认的 .conf 和站点特定的 .conf 中添加,但没有任何效果。
.htaccess 文件在 dist 文件夹中
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
这是指向我的 dist 文件夹的 apache 配置,我也试过在这个文件的底部添加上面的代码,但没有成功。
<VirtualHost *:80>
ServerName Sitename
ServerAlias Sitename
Redirect permanent / Sitename
</VirtualHost>
<VirtualHost *:443>
ServerName Sitename
ServerAlias Sitename
DocumentRoot "/var/www/Sitename/dist"
ProxyPreserveHost On
ProxyPass /api http://127.0.0.1:5010/api
ProxyPassReverse /api http://127.0.0.1:5010/api
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/Sitename/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/Sitename/privkey.pem
</VirtualHost>
Vue 路由代码
const router = new VueRouter({
routes,
mode: 'history',
base: "/",
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
return {selector: to.hash}
} else {
return { x: 0, y: 0 }
}
}
})
所以如果 dist 文件夹是根文件夹,为什么 .htaccess 代码没有修复部署时的路由器历史记录问题?从这个网站上每个人的回答来看,这似乎是解决方案,但它不起作用。我错过了什么吗?
我通过将此行添加到 sites-enabled.conf 文件的底部解决了这个问题
FallbackResource /index.html
我在我的 vue 应用程序中使用历史记录模式,当我构建项目并尝试 运行 它脱离服务器时,只有大约一半的路由正常工作。另一半return一个404.
我浏览了文档并检查了 SO 上类似问题的所有其他答案,none 的解决方案对我有用。
我试过在根 dist 文件夹中添加一个 .htaccess 文件,我试过在默认的 .conf 和站点特定的 .conf 中添加,但没有任何效果。
.htaccess 文件在 dist 文件夹中
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
这是指向我的 dist 文件夹的 apache 配置,我也试过在这个文件的底部添加上面的代码,但没有成功。
<VirtualHost *:80>
ServerName Sitename
ServerAlias Sitename
Redirect permanent / Sitename
</VirtualHost>
<VirtualHost *:443>
ServerName Sitename
ServerAlias Sitename
DocumentRoot "/var/www/Sitename/dist"
ProxyPreserveHost On
ProxyPass /api http://127.0.0.1:5010/api
ProxyPassReverse /api http://127.0.0.1:5010/api
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/Sitename/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/Sitename/privkey.pem
</VirtualHost>
Vue 路由代码
const router = new VueRouter({
routes,
mode: 'history',
base: "/",
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
return {selector: to.hash}
} else {
return { x: 0, y: 0 }
}
}
})
所以如果 dist 文件夹是根文件夹,为什么 .htaccess 代码没有修复部署时的路由器历史记录问题?从这个网站上每个人的回答来看,这似乎是解决方案,但它不起作用。我错过了什么吗?
我通过将此行添加到 sites-enabled.conf 文件的底部解决了这个问题
FallbackResource /index.html