Изображения не отображаются на странице - при открытии в новой вкладке отображается индекс. php - PullRequest
1 голос
/ 10 января 2020

Я поместил несколько изображений в свой индексный файл. php и, как ни странно, он просто не появляется, такой проблемы раньше никогда не было.

Вот код, который я использовал для отображения изображений

<img class="lozad" alt="Twitter" data-src="public/resources/images/twitter.svg" src="public/resources/images/twitter.svg" data-loaded="true">

<img src="public/resources/images/twitter.svg"  height="100" width="80"/>

<img src="resources\images\youtube.svg" height="100" width="80"/>

У меня работает style.less и он находится в той же папке

<style type="text/less"><?php echo file_get_contents('resources/style.less'); ?></style>
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/3.9.0/less.min.js" ></script>

Broken images

Я написал следующий код, чтобы показать мне, что находится в каталоге.

foreach(glob(__DIR__.'/resources/images/*.*') as $file) {
    echo $file;
}
die;

это возвращает:

/ var / www/html/public/resources/images/twitter.svg

/ var / www/html/public/resources/images/youtube.svg

Кроме того, я не уверен, что это важно, но я также использую docker, и вот некоторые связанные файлы:

.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Dockerfile

ARG APACHE_VERSION=""
FROM httpd:${APACHE_VERSION:+${APACHE_VERSION}-}alpine

RUN apk update; \
    apk upgrade;

# Copy apache vhost file to proxy php requests to php-fpm container
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf" \
    >> /usr/local/apache2/conf/httpd.conf

демо. apache .conf

ServerName localhost

LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so

<VirtualHost *:80>
    DocumentRoot "/var/www/html/public"
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE application/json
        AddOutputFilterByType DEFLATE application/vnd.api+json
    </IfModule>
    <IfModule mod_headers.c>
        Header always set Access-Control-Allow-Headers "authorization, content-type"
        Header always set Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE"
        Header always set Access-Control-Allow-Origin "*"
        Header always set Access-Control-Expose-Headers "authorization"
    </IfModule>
    <Directory "/var/www/html/public">
        <IfModule mod_rewrite.c>
            RewriteEngine On
            # Handle options requests...
            RewriteCond %{REQUEST_METHOD} OPTIONS
            RewriteRule ^ - [R=204,L]
            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} .
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
            # Handle Front Controller...
            RewriteRule ^ index.php [L]
        </IfModule>
    </Directory>
</VirtualHost>

nginx .conf

events {}
http {
    server {
        access_log /dev/stdout;
        error_log stderr;
        gzip        on;
        gzip_types  application/vnd.api+json;
        location / {
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, PATCH, DELETE' always;
            add_header 'Access-Control-Allow-Headers' 'authorization, content-type' always;
            add_header 'Access-Control-Expose-Headers' 'authorization' always;
            if ($request_method = 'OPTIONS') {
                return 204;
            }
            fastcgi_pass php:9000;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /var/www/html/public/index.php;
        }
    }
}

docker -compose.yml

version: "3.2"
services:
    nginx:
      ports:
      - 80:80
      image: nginx:1.17
      volumes:
        - ./docker/nginx.conf:/etc/nginx/nginx.conf:ro

    php:
        image: php:7.4-fpm
        volumes:
          - .:/var/www/html
    database:
        image: mysql:5.7.26
        command: --explicit_defaults_for_timestamp
        volumes:
            - mysql-data:/var/lib/mysql
        environment:
            MYSQL_DATABASE: 'db'
            MYSQL_USER: 'user'
            MYSQL_PASSWORD: *********************
            MYSQL_ROOT_PASSWORD: *********************
volumes:
  mysql-data:

1 Ответ

1 голос
/ 11 января 2020

При упоминании типов пантомимы в nginx .conf и некоторого реинжиниринга от друга основной проблемой был nginx .conf, и он должен выглядеть следующим образом

events {}

http {
    include mime.types;
    server {
        access_log /dev/stdout;
        error_log stderr;
        root /var/www/html/public;

        gzip        on;
        gzip_types  application/vnd.api+json;

        location / {
            try_files $uri @php;
        }

        location @php {
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, PATCH, DELETE' always;
            add_header 'Access-Control-Allow-Headers' 'authorization, content-type' always;
            add_header 'Access-Control-Expose-Headers' 'authorization' always;

            if ($request_method = 'OPTIONS') {
                return 204;
            }

            fastcgi_pass php:9000;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /var/www/html/public/index.php;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...