我无法加载保存在默认图像目录 laravel (laravelroot/public/images) 中的图像。我已经在http://domain/laravelroot 上设置了 laravel。这是配置:
server {
listen 80;
server_name localhost;
index index.php;
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ /.well-known {
allow all;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
location ^~ /laravelroot {
alias /usr/share/nginx/html/laravelroot/public;
try_files $uri $uri/ @laravelroot;
location ~ \.php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/laravelroot/public/index.php;
}
}
location @laravelroot {
rewrite /laravelroot/(.*)$ /laravelroot/index.php?/$1 last;
}
在 element inspect 上,它的域指的是http://localhost/imagefile。当我在新选项卡上打开图像时,将 url 更改为http://localhost/laravelroot/images/imagefile.png它已加载。
我试图将图像位置放在 laravelroot 指令中。
location ^~ /laravelroot {
alias /usr/share/nginx/html/laravelroot/public;
try_files $uri $uri/ @laravelroot;
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
alias /usr/share/nginx/html/laravelroot/public/images;
access_log off;
log_not_found off;
expires 360d;
}
location ~ \.php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/laravelroot/public/index.php;
}
}
并没有工作。花了几个小时,但今天没有任何线索
我发现了问题。laravel 本身需要设置图像的基本路径。
我将所有资产放在公用文件夹中,然后使用 HTML::image() 方法,并且只需要一个参数,它是图像的路径,相对于公用文件夹,以及:
{{ HTML::image('images/picture.png') }} 生成以下 HTML 代码:
http://localhost/images/picture.png
似乎离服务器故障有点太远了。但无论如何,谢谢。