【问题标题】:Installing magento 2 does not deploy the /pub/static/frontend and backend安装 magento 2 不会部署 /pub/static/frontend 和 backend
【发布时间】:2015-08-10 03:38:02
【问题描述】:

我遇到了这个奇怪的错误,我没有成功找到原点。 首先我想说的是,我之前成功地在带有 xampp 服务器的 Windows 操作系统上执行了 Magento 2 的一些安装。

我现在正在尝试使用 IIS 在 Windows Server 上安装一个 magento 实例

基本上在配置作曲家等之后。安装运行良好。 安装过程中没有提到错误等。

但是最后,当我尝试访问后端或前端存储时,它会显示页面,但没有加载 css 或图像文件。 当我查看丢失的资源时,基本上所有应该位于以下文件夹中的 css 和图像文件都有 404 错误

pub/static/frontend/*
pub/static/backend/*

实际上在我的文件夹 pub/static/ 中只有 _requirejs 文件夹和 .htaccess 文件,但没有文件夹前端和后端

我猜文件夹前端和后端是自动生成的,因为默认情况下它们不是在 magento 2.0 的初始克隆中

所以,如果有人知道问题出在哪里。

需要考虑的其他信息: 我检查了权限,Web 服务器对每个文件夹和文件 magento 2.0 根目录具有完全访问权限(读写)。

【问题讨论】:

    标签: magento iis-7.5 magento2


    【解决方案1】:

    更简单的方法是从 magento 根文件夹运行以下命令。

    php bin/magento setup:static-content:deploy
    

    这将在各个文件夹中完美地提供内容。如果你有特定的语言,那么运行如下。

    php bin/magento setup:static-content:deploy en_US
    php bin/magento setup:static-content:deploy en_GB
    

    【讨论】:

    • 如果你只有一种语言,那么你可以使用php bin/magento setup:static-content:deploy en_US
    • 是的,为什么我们必须用谷歌搜索这类东西......?
    • 也就是说,我确实在文档中发现提到了这些“静态”资源,但是对于“简单”的安装路线,似乎应该在同一个教程中提到这类东西。
    • 它给了我一个错误:[InvalidArgumentException] "deploy:mode" 命名空间中没有定义命令。请帮忙
    • 谢谢你,php-bugs,提到额外的语言参数!我将商店默认语言更改为 en_GB,并部署了静态内容。 Boom - css 和 js 文件上的 404。运行 php bin/magento setup:static-content:deploy en_GB 修复它。
    【解决方案2】:

    静态内容部署流程如下:

    1) 从 pub/static 文件夹中删除 adminhtmlfrontend_requirejs 文件夹。

    2) 请不要删除 pub/static 文件夹中的 .htacces 文件。

    3) 删除目录 var/cache 中的所有文件夹。

    4) 授予 777 对 pub 和 var 文件夹的权限。

    5) 运行命令:

    php bin/magento setup:static-content:deploy
    

    【讨论】:

    • 777 不是解决方案,也不是手动删除文件夹,这只是一个 hack,在现实生活中的应用程序中没有用处
    【解决方案3】:

    您收到 404 响应可能是因为您没有启用 mod_rewrite。 你应该启用它。 但没有它也可以工作。 这些静态资源有一个“缓存”系统。 导航到文件夹 dev/tools/Magento/Tools/View 并在命令行中运行它

    php deploy.php
    

    完美运行。但是,如果您有问题,请告诉我。

    ----- 编辑 ------

    根据 Chirag Bhavsar 的回答进行编辑。从 Magento 文件夹的根目录输入以下命令。新命令将是

    php bin/magento setup:static-content:deploy
    

    【讨论】:

    • 您好,感谢您的输入,但是我没有成功在提到的文件夹中找到这个 deploy.php。实际上文件夹View是不存在的。
    • 尝试以下步骤。 1. 启用“开发者”模式(在根 .htaccess 文件中添加 SetEnv MAGE_MODE 开发者) 2. 从 pub/static 文件夹中删除除 .htaccess 文件之外的所有内容 3. 打开网站 4. 找到一个未加载的 jquery 资源和在浏览器中打开它 如果在处理该资源的过程中发生任何异常,错误应该在步骤 4 中显示。如果没有,请查看 pub/static 文件夹 - 它应该只包含 .htaccess 文件。 ...待继续(更多在下面的评论中)。
    • 打开 app/etc/di.xml 并找到 virtualType name="developerMaterialization" 部分。在该部分中,您会找到需要修改或删除的项目 name="view_preprocessed"。您可以通过将内容从 Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink 更改为 Magento\Framework\App\View\Asset\MaterializationStrategy\Copy 来修改它删除 pub/static 下的文件以摆脱任何现有的符号链接.您可能要小心不要删除 .htaccess 文件。让我知道它是否适合您。
    • 您好,Soni,感谢您的反馈,但我之前从 magento 团队得到了答复。 github.com/magento/magento2/issues/1312 。运行 cli php 命令 "/bin/magento setup:static-content:deploy" 正确创建了文件,尽管它很长。
    【解决方案4】:

    从头开始安装 Magento 2.1.4 时,我还遇到了权限问题,并且 CSS 和 JS 没有加载到页面中,因为尽管我刚刚运行,但服务器没有找到它们

    php bin/magento setup:static-content:deploy
    

    php bin/magento cache:clean
    

    事实证明,数据库中需要此设置才能访问 CSS 和 JS,并在首次安装 magento2 后加载网站。

    insert core_config_data (config_id, scope, scope_id, path, value) values (null, 'default', 0, 'dev/static/sign', 0); 
    

    这似乎是使网站正常运行的唯一解决方案。

    【讨论】:

    • 太棒了! core_config_data 中的设置对我有用。
    【解决方案5】:

    首先请从 magento 2 中的 'pub/static' 中删除 'static' 文件夹,然后再删除此文件夹,请将此文件夹中的 .htaccess 文件复制到您电脑的其他文件夹中。

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

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

    之后使用 cmd/shell 运行这些命令

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

    php bin/magento deploy:mode:set developer
    

    运行这些命令后,将旧的 .htaccess 文件粘贴到新的静态文件夹中。而已。 并清除完整缓存。

    php bin/magento cache:clean
    

    您的项目现在工作愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-26
      • 2020-10-11
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多