使用 PHP Nginx 的 Docker 无法加载图像或 js - 找不到 404

我正在 Windows 10 pro 本地机器上部署 2 个 docker 容器(nginx 和 php fpm)。


我可以正确执行php脚本。


例如:http://localhost:8888/phpinfo.php --> 正确返回。


但除了 php 脚本(例如图像、js 或 css)它给我找不到。


例如:http://localhost:8888/image.jpg --> 未找到


这里可能出了什么问题?


这是我的 docker compose 文件:


version: '3.7'

services:

  # The Web Server

  web:

    container_name: emm_web

    build:

      context: ./

      dockerfile: web.dockerfile

    volumes:

      - ../log/:/var/log

    ports:

      - 8888:80


  # The PHP Application

  app:

    container_name: emm_app

    build:

      context: ./

      dockerfile: app.dockerfile

    volumes:

      - ../www/:/var/www

    depends_on:

      - web

    environment:

      - "DB_PORT=3306"

      - "DB_HOST=database"

这是我的 nginx vhost.conf:


server {

    listen 80;

    index index.php index.html;

    root /var/www;


    error_log  /var/log/nginx/error.log;

    access_log /var/log/nginx/access.log;


    location / {

        try_files $uri /index.php?$args;

    }


    location ~ \.php$ {

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass app:9000;

        fastcgi_index index.php;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

}


蝴蝶不菲
浏览 479回答 1
1回答

阿晨1998

您需要为 nginx 容器共享文件。尝试这个:# The Web Serverweb:  container_name: emm_web  build:    context: ./    dockerfile: web.dockerfile  volumes:    - ../log/:/var/log    # !! nginx need this volume !!    - ../www/:/var/www:ro  ports:    - 8888:80该只读卷将使容器中的文件可用。
打开App,查看更多内容
随时随地看视频慕课网APP