前言: 接触lnmp一键安装包,的确好用,但是我在配置laravel项目的时候,遇到了一些麻烦 问题: 直接使用lnmp配置了下vhost下的虚拟机目录后,配置的是public目录下,直接访问laravel项目的时候,会出现如下错误:nginx 不能访问或者 not found 解决: 上网找了下,原来是要配置下优雅链接: location / { try_files $uri $uri/ /index.php?$query_string; } 问题:现在laravel项目是可以访问了,但是js,css,图片的一些资源文件不能访问加载,又去找了找,原来http://www.story.com/public/default/css/font-awesome.min.css 多了一个public目录,把它去掉就可以访问资源了 原来代码中也多了个 /public/default/css/........ @section('css') <link rel="stylesheet" href="/public/default/css/iCheck/square/blue.css">@endsection 解决: location /public{ root $prj_root; } 遇到 /public 的url访问时候,直接跳转到项目的根目录下面,而不是public 目录下面 最后: 就可以访问资源文件了哦! 粘贴下nginx的配置: server { listen 80; #listen [::]:80; server_name www.story.com; index index.html index.htm index.php default.html default.htm default.php; set $app_root /var/story/public; set $prj_root /var/story; root $app_root;
include index.php.conf; #error_page 404 /404.html; include enable-php.conf;
location /public{ root $prj_root; } location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #expires 30d; root $prj_root; } location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { root /var/story; #可以注释掉 } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index /index.php; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # location ~ .*\.(js|css)?$ # { # expires 12h; # } location ~ /\. { deny all; }
access_log /home/wwwlogs/story.log.log; } 最后提醒下: 如果 <link rel="stylesheet" href="/public/default/css/iCheck/square/blue.css">连接的路径没有 /public 的话,可以 location /public{ root $prj_root; } |