项目由动态资源和静态资源组成。静态资源包括css、js、HTML等。如果要实现动静分离首先项目必须是SPA。用HTML代替之前的JSP,所有的数据资源都通过ajax进行请求。
目前比较流行的适合用于动静分离的框架是angular+springMvc+nginx+javaweb容器
将所有的静态文件划分在一个目录下面,通过nginx配置反向代理服务器实现动静分离。这也不会存在跨域访问的问题。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8080;
}
location /asset/ {
# asset 的父目录
root E:\codespace2\finapm_1.3.1\src\main\webapp;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
更彻底一点儿的是前后分离,前端可以使用CDN部署,但是这样会存在跨域访问的问题。解决方案参考
- jsonp
- cors (cross origin resources sharing)
- nginx反向代理