我创建了我的第一个Vue.js应用。
我想使用的历史模式在我的Vue公司的路由器,所以我不必例如使用hashbang网址localhost:8080/#/login
。
所以,我将模式设置为历史像这样,它的工作原理:
export default new Router({
mode: 'history',
routes: [...]
})
我的路线,如今显示为localhost:8080/login
。但是,我不能直接使用此URL访问登录页面,当我刷新当前页面或尝试直接键入路径到浏览器的地址栏敲回车,我得到以下错误:
不能得到/登录
按照Vue documentation,我应该配置我的服务器允许这一点。他们建议,对于我的设置,配置Apache和使用mod_rewrite
。
所以,我创建了包含以下.htaccess
声明的mod_rewrite
文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
但我得到了同样的错误,当我尝试直接加载localhost:8080/login
。
我缺少的东西吗?有人可以帮我弄过这一个行?
我的应用程序的目录结构如下所示:
.htaccess文件是Apache网络服务器的配置文件。 localhost:8080
是开发服务器,而不是由Apache的运行,所以.htaccess
文件未使用存在。
开发服务器会自动拿起网址。当它没有,最有可能的罪魁祸首是一个基本URL或公共道路设置不正确,或设置为生产变量。例如,如果你将其设置为/app/
,你必须访问localhost:8080/app/login
到达您的登录页面。由于NODE_ENV
环境变量设置,您可以同时仍保持一个自定义的公共路径,生产版本设置为/
用于开发服务器公共路径。