2017-10-26 7 views
0

에 내가 응용 프로그램의 URL에서 해시 (#)를 제거하고 싶었 :페이지 라우터 모드로로드되지 않습니다 역사를 아파치

http://localhost/CoreUI-Vue/Vue_Starter/dist/#/dashboardhttp://localhost/CoreUI/Vue_Starter/dist/dashboard

그래서 난 vue-routermode 옵션을 변경했습니다 router/index.js에서 history-hash에서 : 나중에

import Vue from 'vue' 
import Router from 'vue-router' 

Vue.use(Router) 

export default new Router({ 
    mode: 'history', 

하지만, 나는 recompil 때 에드 소스 코드 (npm run build) 및 응용 프로그램 (http://localhost/CoreUI/Vue_Starter/dist/dashboard)를 개설, 그것은 빈 페이지로드 :

<body class="app header-fixed sidebar-fixed aside-menu-fixed aside-menu-hidden"> 
<!----> 
<script type="text/javascript" src="./static/js/manifest.7c717a1bcc0cc7dc29c1.js"></script> 
<script type="text/javascript" src="./static/js/vendor.dfb9d96e757ce802aece.js"></script> 
<script type="text/javascript" src="./static/js/app.1cbf93c84add6c85b943.js"></script> 
</body> 

문제없이 응용 프로그램 mode: 'hash' (http://localhost/CoreUI/Vue_Starter/dist/#/dashboard) 부하 라우터 반면 :

<body class="app header-fixed sidebar-fixed aside-menu-fixed aside-menu-hidden"> 
<div class="app"> 
    (...app content...) 
</div> 
<script type="text/javascript" src="./static/js/manifest.a2cf3e09f095de958e46.js"></script> 
<script type="text/javascript" src="./static/js/vendor.dfb9d96e757ce802aece.js"></script> 
<script type="text/javascript" src="./static/js/app.72b651a6c3b2660db094.js"></script> 
</body> 

내가 실현 이 추가 설정은 웹 서버가 작동하도록 제공되어야하지만 여전히 도움이되지 않습니다.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule> 

.htaccess이 동일에 있습니다 내가 (vue-router docs에서 복사) .htaccess 역사 라우터에 대한 지원을 제공

LoadModule rewrite_module modules/mod_rewrite.so 

: 아파치의 설정 httpd.conf에서

이 난에 mod_rewrite는이 설정되어 보장 프로젝트의 index.html 폴더에 저장하십시오.

가장 많이 사용되는 Webpack/Vue boilerplate 템플릿을 사용하는 빈 CoreUI-Vue 템플릿에서 작업 중이므로 내 코드 또는 구성에 특별한 내용이 없습니다.

+0

지금 당장은이 서버를 사용하지 말고'RewriteBase'는'/ CoreUI/Vue_Starter/dist /'여야합니다. –

답변

1

제작 빌드를 사용합니다. (윈도우)

<VirtualHost *:80> 
    DocumentRoot "c:\path_to_dist" 

    ServerName servername.localhost 
</VirtualHost> 

그리고 /etc/hosts (리눅스) 또는 c:\Windows\system32\drivers\etc\hosts에 추가 : 나는 당신이 프로덕션 환경에서 같은 경로가 아파치 설정에서 가상 호스트를 추가해야한다고 생각

127.0.0.1 servername.localhost 

난 당신 때문에이 방법을 선호 추가 편집없이 모든 프레임 워크 설명서의 .htaccess 구성을 사용할 수 있으며 경로 문제가 없습니다. 이 솔루션을 원하지 않는 경우

은 물론, 당신은 .htaccess이 이런 식으로 뭔가를 편집 할 수 있습니다

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . CoreUI/Vue_Starter/dist/index.html [L] 
</IfModule> 

나는 그 (년에서 아파치를 사용하지 않은) 작동하는지 확실하지 않다, 하지만 마지막으로 RewriteRule 또는 RewriteBase을 수정해야합니다.