이전글에서 web.xml로 해결했다면 근본적인 해결방법을 포스팅한다.
당연히 Apache라고 생각했던 나를 반성하며 tomcat에서 vue-router 적용하는 방법으로 다른 글 포스팅을 통해 따라했다.
tomcat-server-9.0.73
#1. server.xml 파일 수정
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
추가
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
#2. rewrite.config 파일 만들기
${tomcat_home}/conf/Catalina/localhost/rewrite.config
RewriteCond %{REQUEST_PATH} !-f
RewriteCond %{REQUEST_PATH} !-d
RewriteCond %{REQUEST_URI} !^/images/(.*)$
RewriteCond %{REQUEST_URI} !^/css/(.*)$
RewriteCond %{REQUEST_URI} !^/js/(.*)$
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteRule ^/${context}/(.*) /${context}/index.html
context에 내가 설정한 context 이름을 설정해주면 된다.
tomcat에 여러 앱을 배포한다면..? 모든 경로를 다 설정해줘야 하는건가?
애플리케이션경로/WEB-INF/rewrite.config 는 제대로 동작하지 않아서 일단 임시로 이렇게 적용했다.
web.xml 설정해주는 것과 다르게 콘솔창에서 404 에러가 뜨지 않는다.