【问题标题】:Laravel + October CMS, combined stylesheets doesn't interpreter as CSSLaravel + October CMS,组合样式表不解释为 CSS
【发布时间】:2018-05-24 14:54:00
【问题描述】:

我正在尝试从 Ubuntu 18 + Nginx 上的 git 存储库运行本地项目。在来自组合资产的前端文件中,名称如“31bf092dab0286a768e84f61021e617e-1527088735”且没有扩展名,不会被解释为 CSS 或 JS。 在 Chrome 页面加载时没有样式并且 Chrome 显示错误:“资源解释为样式表,但使用 MIME 类型文本/html 传输:“https://example.test/combine/31bf092dab0286a768e84f61021e617e-1527088735”。 什么 Nginx 设置可以毁掉这一切?

我的配置

server {
    listen 80;
    listen [::]:80;

    server_name example.test *.example.test;
    return 301 https://$server_name$request_uri;

    gzip on;
    gzip_comp_level 6;
    gzip_disable "msie6";
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

}

服务器{

listen 443 ssl http2;
listen [::]:443 ssl http2;

ssl_certificate /etc/ssl/certs/localhost.crt;
ssl_certificate_key /etc/ssl/private/localhost.key;

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

set $root_path /var/www/newemotion.test/web/;

root $root_path;

index index.php index.html index.htm index.nginx-debian.html;

server_name example.test *.example.test www.example.test;

gzip on;
gzip_comp_level 6;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|woff|ttf|otf|woff2)$ 
{
    expires 7d;
}

if (!-e $request_filename)
{
    rewrite ^/(.*)$ /index.php?/$1 break;
    break;
}
rewrite themes/.*/(layouts|pages|partials)/.*.htm /index.php break;
rewrite uploads/protected/.* /index.php break;



location / {
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}

    location ~ ^/favicon\.ico { try_files $uri /index.php; }
location ~ ^/sitemap\.xml { try_files $uri /index.php; }
location ~ ^/robots\.txt { try_files $uri /index.php; }
location ~ ^/humans\.txt { try_files $uri /index.php; }

## Let nginx return 404 if static file not exists
location ~ ^/storage/app/uploads/public { try_files $uri 404; }
location ~ ^/storage/app/media { try_files $uri 404; }
location ~ ^/storage/temp/public { try_files $uri 404; }

location ~ ^/modules/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; }

location ~ ^/plugins/.*/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; }

location ~ ^/themes/.*/assets { try_files $uri 404; }
location ~ ^/themes/.*/resources { try_files $uri 404; }

location @php {
        #fastcgi_index index.php;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
        #try_files $uri =404;
        include fastcgi_params;
}

}

我已尝试从 10 月 CMS 文档中编写默认配置。没有任何帮助。

【问题讨论】:

    标签: laravel nginx octobercms


    【解决方案1】:

    问题出在 memcached 中,我禁用它并将缓存类型设置为 .env 文件中的文件。

    【讨论】:

      【解决方案2】:

      mime 类型设置错误,因为 nginx 使用文件扩展名设置 mime 类型。为了能够正确设置 mime 类型,您需要使用文件扩展名或为目录设置默认 mime 类型。

      要为目录设置默认的 mime 类型,请使用以下位置块

      location ~ css{
         default_type text/css;
      }
      
      location ~ js{
         default_type application/javascript;
      }
      

      【讨论】:

      • 谢谢你,尼克,但这是我做的第一件事。感谢您的帮助,但我已经解决了。
      猜你喜欢
      • 2012-06-26
      • 2011-03-18
      • 2021-01-03
      • 2016-11-02
      • 1970-01-01
      • 2014-07-05
      • 2019-07-16
      • 2019-04-09
      • 1970-01-01
      相关资源
      最近更新 更多