Magento 2 MIME类型('text / html')不可执行,且MIME类型严格。

7

我是Magento 2的新手,但已经对它感到烦恼了。我进行了全新安装,在浏览器设置中一切看起来都正常。然而,在前台和后台成功安装后,我遇到了一个错误。我无法登录管理面板,当我加载管理员页面时,出现以下错误:

Refused to execute script from '<URL>' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

我在网上查看了很多评论,其中许多评论都指出pub/static中缺少.htaccess文件,但是我已经清除了缓存、编译、部署等所有操作,一切都正常,但我仍然不明白为什么会出现错误...

enter image description here

前端错误: enter image description here

注意: 在前端控制台错误中,我检查到的奇怪问题是错误行。

http://mageuniversity.local/Magento_Theme/js/responsive.js net::ERR_ABORTED 404 (Not Found)

我不明白为什么在根路径中查找"Magento_Theme/js.."时,完全不知道该怎么做。


你找到解决方案了吗? - Knight017
我也受够了。我已经花了四天时间在这上面,仍然面临着这个问题。 - Sandeep Sudhakaran
我刚刚遇到了这个问题,但是原因是我在layout/default.xml中引用这个模块时指定了错误的模块,修正后问题得到解决。 - Barry
我在一个Adobe Commerce Cloud项目中遇到了这个问题。按照以下步骤帮助我解决了这个问题:Refused to apply style from '<URL>' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.https://dev59.com/rdL7oIgBc1ULPQZFuvep#75515553 - Asrar
7个回答

5

静态文件尚未部署,请尝试:

php bin/magento setup:static-content:deploy -f de_DE // or your language code

同时保持开发模式,它会显示错误信息。

php bin/magento deploy:mode:set developer

如果您仍然遇到相同的问题,请运行以下命令。
rm -rf var  generated/* pub/static/*  

chmod 777 -R var generated pub

然后再次

php bin/magento setup:static-content:deploy -f
php bin/magento deploy:mode:set developer

尝试过了,仍然遇到问题。 - Sandeep Sudhakaran
运行以下命令: rm -rf var generated pub/static
mkdir var generated pub/static chmod 777 -R var generated pub
- Dexture
它不能正常工作,导致我的网站出现了500错误。 - AboElnouR

1

当你错误地添加Js文件时,可能会出现此错误。例如,当您将".js"添加到文件末尾时。

例如:

错误的做法

/*in a template*/
<script type="text/x-magento-init">
    {
        "*": {
            "Vendor_Module/js/script.js": {
                "variable": "something"
            }
        }
    }
</script>

//OR
/*in a require-config.js file */

var config = {
    config: {
        mixins: {
            'Vendor_Module/js/catalog-add-to-cart': {
                'Vendor_Module/js/catalog-add-to-cart/mixin.js': true
            }
        }
    }
};

正确

/*in a template*/    
<script type="text/x-magento-init">
    {
        "*": {
            "Vendor_Module/js/script": {
                "variable": "something"
            }
        }
    }
</script>

//OR
/*in a require-config.js file */

var config = {
    config: {
        mixins: {
            'Vendor_Module/js/catalog-add-to-cart': {
                'Vendor_Module/js/catalog-add-to-cart/mixin': true
            }
        }
    }
};

1
尝试两种Magento模式:生产/开发者

bin/magento deploy:mode:set {mode} [developer|production]

还要检查所有文件夹的所有者,我认为您的Magento无法创建静态文件。


1
尝试了开发者模式和生产模式,仍然遇到了这个问题。 - Sandeep Sudhakaran

1
似乎您可能缺少位于pub/static中的重要.htaccess文件,请确保它存在。如果没有,请从GitHub Magento存储库复制一个 - https://github.com/magento/magento2 如果您没有缺少该文件,则必须是mod rewrite的问题,请确保已安装并正确配置。

1
<-- Changes in app\code\Magento\Developer\etc\di.xml -->

 Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink  

    -- to --

 Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

首先,在删除此文件夹之前,请从Magento 2中的“pub / static”中删除“static”文件夹。在删除此文件夹之前,请将此文件夹中的.htaccess文件复制到计算机上的其他文件夹中以备份。然后,使用cmd / shell运行以下命令。

php bin/magento setup:static-content:deploy -f

并且

php bin/magento deploy:mode:set developer

并且

php bin/magento cache:clean

运行这些命令后,将旧的 .htaccess 文件粘贴到新的静态文件夹中。就这样。

您的项目现在可以正常运行了,请享受!


如果您能够提供更清晰的解释,那将会更有益处。 - JerodG
感谢您在此留言以获得更多的明确信息。 - Narwal Saab

0
在Magento版本2.4.5-p1中, 我遇到了同样的问题。 在我的情况下,JavaScript模型路径是错误的。
define([
    'ko',
    'Vendor_Module/js/model/payment/google_pay'
], function (ko) {
    'use strict';

    return ko.observableArray([]);
});

我给出了错误的路径 Vendor_Module/js/model/google_pay 正确的路径应该是
Vendor_Module/js/model/payment/google_pay

请检查一下 JavaScript 文件路径。 谢谢。

0
我用两种不同的方法解决了这个问题。我将解决方法解释如下:
1- 如果您正在使用Cloudflare,请创建规则。
          Rules-Transform Rules -Modify response header - Create Rule
    If  custom filter expression 
URI ends with js
    than
add Content-Type = text/javascript

2- php.ini -- 您可以更改 default_mimetype ; PHP 的内置默认媒体类型设置为 text/html.
; https://php.net/default-mimetype default_mimetype = "text/html"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接