拒绝应用样式“因为它的MIME类型('text / html')不是受支持的样式表MIME类型”


27

突然,我的Magento 2管理面板上没有加载CSS。前端工作正常。

错误详情:

  1. “拒绝应用来自' https://www.ornativa.com/pub/static/version1502029409/adminhtml/Magento/backend/en_US/css/styles-old ...'的样式,因为它的MIME类型('text / html' )不是受支持的样式表MIME类型,并且启用了严格的MIME检查。”

  2. “未捕获到的SyntaxError:JSON中的意外令牌<位于JSON.parse()位置0处的回调((index):68)在Object.execCb(require.js:1650)在Module.check(require.js:866)处Module。(require.js:1113)在require.js:132在require.js:1156在Module.emit(require.js:1155)在每个(require.js:57)在Module.check(require.js: 917)“在此处输入图片说明


服务器或.htaccess文件做了什么?
Shyam Krishna Sreekumar,

1
同样的问题,我面对的

1
您解决了问题吗?
zus


我现在遇到了这个问题,但这是由于在我正在引用的layout / default.xml中指示了错误的模块,已修复并已修复
Barry

Answers:


17

最近,Magento 2网站存在一个非常相似的问题。设法将问题跟踪到服务器上pub / static文件夹中缺少的非常重要的.htaccess文件。

目前尚不清楚如何神秘地删除此文件,但从干净的Magento 2安装重新添加此文件可解决此问题。


13

该问题是由于对静态文件的权限问题引起的。

要解决此问题,

1)转到文件路径 pub/static/

2)检查.htaccess文件是否可用(隐藏文件-按cntrl + H进行查看)。

3)如果不可用,请根据Magento版本.htaccess在文件路径中获取文件pub/static/并移入服务器。

4)最后,清除浏览器和Magento缓存并进行检查。


我不检查htaccess文件:D完美!:)
alexey boltynov

9

今天早上我遇到了同样的问题。我更新了销售电子邮件模板,然后突然管理页面停止工作。

当我重新部署管理页面的资产时,该问题已解决。

我运行以下命令:

  1. grunt clean; grunt exec; grunt less
  2. bin/magento setup:static-content:deploy -f -s standard
  3. bin/magento cache:clean

也许,每当销售电子邮件模板更新时,都必须重新部署CSS 。


您能否解释这些grunt命令的作用?我目前不使用它。谢谢!
约书亚洪水

1
@JoshuaFlood也许此链接可以为您和其他人提供帮助。devdocs.magento.com
guides/v2.0/

1
@JoshuaFlood grunt只是自动化重复执行的任务的一种方法,例如在这种情况下,将较少的文件编译为css,但是您可以不使用grunt来遍历整个项目,在我的案例中,使用罗盘编译sass
medmek,

多谢你们!尽管我不确定我现在是否想过多地篡改magento系统,因为我几乎完成了我的生产环境的设置,并且我已经知道Magento在不久的将来将不再支持LESS,所以我我会等到他们一起行动。将不得不在某个时候玩。
约书亚洪水



3

花大约一个小时寻找解决此问题的方法...

我吃过新鲜的Magento ver。2.2.6安装后出现了同样的问题。目前,这里没有答案对我有用。最后一个简单的:

php bin/magento cache:flush

解决了我的问题。

如果所有其他技巧都失败了,我希望以上内容能为您提供帮助。


1
谢谢。工作对我来说也是2.3.2
阿卜杜勒·卡里姆·马特奥斯桑切斯

2

我也有同样的问题

我要做的是在根目录和/ pub目录上都重命名.htaccess。它解决了我的问题。

另外,您可以将.htaccess替换为

############################################
## uncomment the line below to enable developer mode

#   SetEnv MAGE_MODE developer

############################################
## uncomment these lines for CGI mode
## make sure to specify the correct cgi php binary file name
## it might be /cgi-bin/php-cgi

#    Action php5-cgi /cgi-bin/php5-cgi
#    AddHandler php5-cgi .php

############################################
## GoDaddy specific options

#   Options -MultiViews

## you might also need to add this line to php.ini
##     cgi.fix_pathinfo = 1
## if it still doesn't work, rename php.ini to php5.ini

############################################
## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

############################################
## default index file

    DirectoryIndex index.php

<IfModule mod_php5.c>

############################################
## adjust memory limit

    php_value memory_limit 768M
    php_value max_execution_time 18000

############################################
## disable automatic session start
## before autoload was initialized

    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
## disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off

</IfModule>

<IfModule mod_security.c>
###########################################
## disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

</IfModule>

<IfModule mod_ssl.c>

############################################
## make HTTPS env vars available for CGI mode

    SSLOptions StdEnvVars

</IfModule>

<IfModule mod_rewrite.c>

############################################
## enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## redirect for mobile user agents

    #RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$
    #RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    #RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>


############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"
    ExpiresByType text/html A0
    ExpiresByType text/plain A0

</IfModule>

###########################################
## Deny access to root files to hide sensitive application information
    RedirectMatch 404 /\.git

    <Files composer.json>
        order allow,deny
        deny from all
    </Files>
    <Files composer.lock>
        order allow,deny
        deny from all
    </Files>
    <Files .gitignore>
        order allow,deny
        deny from all
    </Files>
    <Files .htaccess>
        order allow,deny
        deny from all
    </Files>
    <Files .htaccess.sample>
        order allow,deny
        deny from all
    </Files>
    <Files .php_cs>
        order allow,deny
        deny from all
    </Files>
    <Files .travis.yml>
        order allow,deny
        deny from all
    </Files>
    <Files CHANGELOG.md>
        order allow,deny
        deny from all
    </Files>
    <Files CONTRIBUTING.md>
        order allow,deny
        deny from all
    </Files>
    <Files CONTRIBUTOR_LICENSE_AGREEMENT.html>
        order allow,deny
        deny from all
    </Files>
    <Files COPYING.txt>
        order allow,deny
        deny from all
    </Files>
    <Files Gruntfile.js>
        order allow,deny
        deny from all
    </Files>
    <Files LICENSE.txt>
        order allow,deny
        deny from all
    </Files>
    <Files LICENSE_AFL.txt>
        order allow,deny
        deny from all
    </Files>
    <Files nginx.conf.sample>
        order allow,deny
        deny from all
    </Files>
    <Files package.json>
        order allow,deny
        deny from all
    </Files>
    <Files php.ini.sample>
        order allow,deny
        deny from all
    </Files>
    <Files README.md>
        order allow,deny
        deny from all
    </Files>

################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none

谢谢你的回答,它的工作。
Chirag Gondaliya

1

我最近遇到这个问题,根本找不到导致它的原因。

直到我检查了debug.log-事实证明这是我主题的自定义LESS文件中的语法错误。(就我而言,我在某处添加了一个额外的括号)。

  • 我修复了错误
  • 再次部署静态文件
  • 清理并刷新缓存

我再次刷新了页面,主题正在正确处理。

我不确定Magento为什么要为此乱扔东西-可能是我网站的设置,但是-解决了它,所以我下次知道了!

希望这对其他人有帮助:)



1

为了摆脱此错误,我从中删除了CSS代码段

管理面板>设计>配置>选择主题> HTML Head部分>脚本和样式表

然后,您可以继续。由于该文件永远不会在magento中使用:)


0

您需要在该文件中添加主题:dev / tools / grunt / configs / themes.js


0

就我而言,此问题是在我删除了一个较小的变量后出现的,该变量仍在其他较少的文件中使用。

因此,Magento未完成CSS的编译,这导致了预期的另一个服务器响应。


0

如果(出于某种原因)您使用的是Venustheme主题,则在内容部署期间未创建CSS文件。Chrome中存在有关不受支持的MIME类型的错误,但是当您检查FTP时,该文件甚至不存在。

要解决此问题,请转到:

Venustheme -> Customization -> and click Save Config

之后清除缓存,就可以了。


0

我今天有同样的问题。无论我做什么,我都无法解决。由于CSS未加载,我无法联系管理员...

我从Google页面信息中找出来,它无法在/ pub / static下找到css文件。我检查了所有目录的.htaccess文件,一切都很好。

我看到它正在搜索.css文件,但随后我使用cpanel文件浏览器进行了检查,该位置我有.min.css。

所以我知道这是因为admin中CSS和JS的最小化设置。

在我对JSS和CSS合并和最小化全部检查为YES之前。

由于无法联系到管理员,因此我打开phpMyadmin并找到core_config_data表,然后使搜索PATH =%LIKE% css,然后使js,并将缩小和合并设置为“ 0”。

然后我再做一次:

  • bin / magento s:d:c

  • bin / magento设置:静态内容部署-f(我的语言为tr_TR)

  • bin / magento c:f

  • bin / magento c:c

一切都很好,这个问题为我解决了...

希望这能帮助像我一样面对同样案件的人...


0

我在本地设置中遇到了相同的错误。所以我尝试了

  1. 咕clean干净
  2. bin / magento设置:静态内容:部署-f

在部署静态内容时,我知道_theme.less中存在一些错误的变量分配。我修好了再跑

  1. 咕clean干净
  2. bin / magento设置:静态内容:部署-f

这解决了我的问题。


-2

我的问题是所有者权限,某些文件已从我的帐户移到了根帐户。

看到有很多文件需要更改后,我只更改了整个www文件夹,因为我只有一个magento

chown yourusername:yourusername -R /home/<yourusername>/www/*

这个答案非常取决于服务器运行的用户/文件权限。这个答案通常会破坏服务器在www-data下运行的安装。
探路者
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.