在给公司的项目配置nginx的时候,由于业务需求,访问地址很长http://xxx.xxx.com/static/credit/files/model1/index.html#/home。先需要将长地址变成http://xxx.xxx.com这样短的,便于访问和维护。
第一阶段
用阿里云域名解析里的的隐形url
访问http://xxx.xxx.com的时候是可以访问的,直接访问的是http://xxx.xxx.com/static/credit/files/model1/index.html#/home,而且浏览器窗口地址还是短的不变,基本上能满足要求
但是这样做会有bug,阿里云的隐形url利用的是frameset,查看源码就可以知道
这样处理虽然可以正常显示页面,但在网站的title处不会显示网站的名称
正常显示是网站的名称的。代码里title设置的
第二阶段
利用nginx的location和反向代理来配置
server { listen 80; server_name ls_local.yiducredit.com; access_log logs/ls_local.yiducredit.com.log main; location ~* \.(gif|jpg|jpeg|png|css|js|ico|html|json)$ { root /lvzb/apache-tomcat-view/webapps/ROOT/static/credit/files/model1; index index.html; } location / { proxy_pass http://localhost:2024/static/credit/files/model1/index.html; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 6 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
此处又有几个坑需要注意
1、由于路径问题,代码里的css和js文件加载不了,路径不对,这里用location来处理。将静态文件地址直接映射到目录位置处
location ~* \.(gif|jpg|jpeg|png|css|js|ico|html|json)$ { root /lvzb/apache-tomcat-view/webapps/ROOT/static/credit/files/model1; index index.html; }
2、css样式没有引用,页面样式错乱,打开浏览器控制台,发现下面的警告
Resource interpreted as Stylesheet but transferred with MIME type text/plain
意思大概是文件本来是css样式文件,但是当text/plain用了,所有不能正常显示。google了一下,最后发现是nginx没有加mime.types,在nginx里加上后,页面就可以正常显示了。
worker_processes auto;
pid /var/run/nginx.pid;
worker_rlimit_nofile 102400;
user www;
events
{
use epoll;
worker_connections 102400;
}
http {
include mime.types;
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time $remote_addr';
include vhost/*.conf;
}
如无特殊说明,文章均为本站原创,转载请注明出处
- 转载请注明来源:配置nginx遇到的坑一—–css样式不显示问题
- 本文永久链接地址:http://www.hongxiaowei.com/xiaowei/473.html