Magento 2 CSS e JavaScript não carregando da pasta correta


35

Espero que alguém aqui possa ajudar. Estou tentando instalar e executar o Magento 2 no WAMP em uma máquina Windows 7 com pouco sucesso.

Depois de pular os muitos e diversos aros para fazer o site carregar, agora estou com 404 respostas e sem estilos ou carregamento de javascript.

Spec é o seguinte:

  • Amostras Magento-CE-2.0.0 +
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Quando olho para o console do navegador, entre os erros estão as tentativas de acessar arquivos que não estão na pasta pub / static. A pasta "frontend" é carregada e a maioria dos arquivos está presente. Notei, no entanto, que alguns arquivos CSS não estão presentes.

Ao executar o comando PHP deploy

php bin/magento setup:static-content:deploy

mencionado em outros posts, recebo o erro abaixo. Não sei como remediar isso?

Erro fatal: tamanho de memória permitido de 134217728 bytes esgotado (tentou alocar 64 bytes) em C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php na linha 45

Qualquer assistência será muito apreciada.

ATUALIZAR

Eu ampliei o limite de memória do PHP e executei o script de implementação do php novamente. Desta vez, ele não errou e foi executado completamente. No entanto, o mesmo problema descrito acima ainda está presente. O site é carregado, mas todas as tentativas de carregar qualquer página ou ativo resultam em um erro de página 404 não encontrado sem o estilo aplicado.

Veja abaixo os erros no Chrome Inspector

insira a descrição da imagem aqui


@TejabhagavanKollepara Esta pergunta foi feita primeiro, está bem formada, tem boas respostas, por isso IMO a outra pergunta é um candidato idiota, não este ... Btw, se a bandeira da outra pergunta como duplicada para esta foi recusada , não é necessário sinalizar esta pergunta como duplicada da outra para tentar obter o mesmo.
7ochem 07/10

Veja também a resposta da SA - uma nova instalação do Magento está no modo "padrão" (não "produção") e não precisa do conteúdo estático implantado, que é o que você está sendo solicitado a fazer em todas as outras respostas.
Jānis Elmeris 22/03/19

Respostas:


50

SOLUÇÃO # 1 (SE VOCÊ QUER EDITAR ARQUIVO XML)

Gostaria que você baixasse o Magento 2 zip magentocommerce.com/downloadcom dados de exemplo, crie um novo banco de dados no phpmyadmin , extraia o zip na pasta htdocs . Instale o Magento 2, mas não use o host local, use 127.0.0.1 no URL da loja e no URL do administrador. Após a instalação bem-sucedida, NÃO execute o magento.

Agora vamos limpar / excluir caches e sessões do Magento 2. Vá para os seguintes caminhos e exclua tudo:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Quando o Magento 2 não está no modo de produção, ele tenta criar links simbólicos para alguns recursos estáticos no servidor local. Temos que mudar esse comportamento do Magento 2 indo para editar o ROOT > app > etc > di.xmlarquivo. Abra di.xmlno seu editor de código favorito, encontre a virtualType name="developerMaterialization"seção. Nessa seção abaixo, você encontrará um item <item name="view_preprocessed" xsi:type="object">que precisa ser modificado. Você pode modificá-lo alterando o seguinte conteúdo:

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

Para:

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

Agora, na última etapa, exclua também os arquivos antigos gerados no ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

SOLUÇÃO # 2

Instale o Composer. Agora eu gostaria que você baixasse o Magento 2 zip magentocommerce.com/download, crie um novo banco de dados no phpmyadmin , extraia o zip na pasta htdocs . Instale o Magento 2, mas não use o host local, use 127.0.0.1 no URL da loja e no URL do administrador. Após a instalação bem-sucedida, NÃO execute o magento.

Agora vamos verificar a instalação do Composer, implantar conteúdo estático, limpar / liberar o cache do Magento e reindexar os blocos do Magento 2. Para executar todas as ações acima, pressione WINDOWS KEY + R para abrir a caixa de diálogo EXECUTAR e digite “cmd” para abrir o prompt de comando.

Digite “ cd PATH_TO_YOUR_MAGENTO2_FILES ” para entrar no diretório ROOT do Magento 2.

Agora, para verificar a instalação do Composer no diretório acima, digite " instalação do compositor ".

Se houver algum erro nesta etapa, verifique a instalação do Composer

Nesta etapa, estamos configurando conteúdo estático para implantar em nossa loja Magento. Para fazer isso, digite “ php bin / magento setup: static-content: deploy ”.

Para quem está no Magento 2.2.x

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

Se você receber algum erro, verifique suas variáveis ​​de ambiente PHP.EXE e PHP.INI

Limpe / Limpe o cache do Magento digitando " php bin / magento cache: flush " no CMD.

E finalmente, para Reindex Magento Static Blocks, digite “ php bin / magento indexer: reindex ”.

Você terminou a instalação bem-sucedida do Magento 2.


4
Também em php.ini mudança max_execution_time a 500, memory_limit para 2048M, post_max_size a 2048M, upload_max_filesize a 2048M e max_file_uploads a 2048.
Fayyaz Khattak

Obrigado pela sua resposta rápida. Fiz essas mudanças, mas elas não surtiram efeito. Eu reiniciei o servidor WAMP depois de fazer as alterações. Eu editei a pergunta para mostrar os erros que eu posso ver no inspetor do Chrome
E.Gain

Oh i lamento mencionar mais uma coisa, primeiro apagar todo o cache e sessão, as alterações feitas no di.xml e tudo também de exclusão de ROOT> pub> estática> APAGAR TUDO EXCEPTO .htaccess
Fayyaz Khattak

1
@MagenX Essa é a visão de cada pessoa sobre qual ferramenta ele mais prefere usar. Aos seus olhos, você critica tudo como martelo, em vez de compartilhar sua visão da solução.
Fayyaz Khattak

1
A solução 2 funcionou como um encanto, obrigado por me poupar horas, se não dias, lidando com esse problema!
Jonathan Marzullo 12/01

11

você só precisa atualizar o arquivo apache2.conf.

No Ubuntu 16.04

  1. Abra e edite o arquivo /etc/apache2/apache2.conf
  2. Navegue para o local no arquivo apache2.conf <Directory /var/www/>
  3. Mude "AllowOverride None"para"AllowOverride All"
  4. Salve o arquivo
  5. Reiniciar apache2 -> sudo service apache2 restart

Foi tão difícil encontrar esta resposta! Em todos os outros lugares, as pessoas sugerem (re) implantar conteúdo estático, mesmo que uma nova instalação do Magento esteja no modo "padrão" (não "produção") e não precise do conteúdo estático implantado.
Jānis Elmeris 22/03

10

Se você está enfrentando um problema de design de carregamento de página css e js após a instalação no magento2

siga o seguinte passo:

abra o terminal e navegue até a raiz da web magento

 $ cd / var / www / html / magento2 

Passo 1.

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

Passo 2.

$ php bin / indexador magento: reindex

Etapa 3.

verifique se o apache “rewrite_module” está ativado e, em seguida, reinicie o servidor

Passo 4.

$ chown -R www-data: www-data / var / www / html / magento2 

Etapa 5.

 $ chmod -R 777 / var / www / html / magento2 

Etapa 6.

excluir pasta de cache em var / cache

A etapa acima está funcionando. Espero que isso funcione para você também.

Deixe-me saber se houver algum problema. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/


1
como executar esses comandos no windows?
Hassan Ali

1
Funciona para mim apenas nos 3 primeiros passos. :)
hln

6
Não é tão inteligente definir a permissão para 777 para todos os arquivos no servidor.
Chris Gudn

1
Não estou realmente impressionado com a etapa em que você dá permissão de leitura e gravação completa para toda a instalação do magento.
Cyclonecode

1
definir permissões para 777 é um mau conselho, mas esperamos que todos os administradores de sistemas saibam melhor.
John Hall

6

Para mim, era simplesmente porque o mod_rewrite não estava ativado.

sudo a2enmod rewrite

e

service apache2 restart


1
solução perfeita !!! 1)
SagarPPanchal

6

Eu tive o mesmo problema resolvido adicionando

sudo nano /etc/apache2/apache2.conf

Modifique isto

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

para isso

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

você também deve ativar mod_rewritee instalar o módulo apache2 de certificados SSL:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
Isso, além de rm -rf var / *, funcionou para mim. Ótimo e bom local.
Jon Holland

6

Aqui está a solução mais simples, se estiver mostrando o nome da versão no caminho css

como: pub / static / version323334 /

então execute esta consulta no mysql

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

depois disso limpe o cache de configuração

 bin/magento cache:clean config

você também pode desativar a versão do arquivo estático do admin

insira a descrição da imagem aqui


4
Isso funcionou para mim, obrigado. No entanto, a consulta precisa ser corrigida INSERT INTO core_config_data (path, value) VALUES ('dev / static / sign', 0);
Aftab Naveed

o que é caminho e valores
zus

caminho, valor são campos nome eu já definem valores (dev / static / sinal, 0), basta executar este sql deve ser trabalho
Surendra Kumar Ahir

solução perfeita !!! fiz o meu dia :) +1
SagarPPanchal 12/09

5
  1. Tente desativar o cache se você não o desabilitar antes
  2. Verifique se você possui a versão mais recente do Magento com código limpo. Se você modificar ou personalizar algo, corrija todos os erros.
  3. Executar vários comandos abaixo pode ajudá-lo.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Remova as pastas

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

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


3

No meu caso, excluí acidentalmente .htaccessarquivos ROOT/pub/e ROOT/pub/staticpastas. Em seguida, ele começa a funcionar quando eu o reverto .


2

Resolvido !!!

Execute os seguintes comandos na interface CLI da sua pasta raiz Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Em seguida, exclua a pasta var por este comando na raiz do magento2.

rm -rf var/*

Atualize sua página inicial e painel de administração. Está funcionando !!!!! Legal !!!!


1

Eu tive o mesmo problema com 404s. Eu o resolvi certificando-me de que a diretiva VirtualHost no Apache estivesse correta. Aqui está o meu VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

E você também pode dizer, o que estava errado antes? Caso contrário, este exemplo não será de grande ajuda para os outros.
Fabian Schmengler


0

Eu tinha exatamente o mesmo problema que o OP e era simplesmente porque eu defini meu código de idioma para en_AU, portanto, o uso do comando deploy padrão gerou apenas o en_USconteúdo. Você precisa adicionar o código do idioma que você está usando na EN do comando, desta forma:

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

0

Eu tentei as soluções acima. Mas isso não me ajudou. Apesar disso, usei os mesmos comandos que eles mencionaram com as mudanças de sequência. Eles são,

  1. limpar cache, composer_home, geração, log, page_cache, tmp e view_preprocessed do diretório var

  2. execute os seguintes comandos, um por um.

indexador bin / magento do php: reindex

php bin / cache magento: flush

configuração do bin php / magento: static-content: deploy

Espero que isso ajude alguém como eu.


0

Desativar mod_pagespeed

O Pagespeed processa uma instância "em cache" do seu conteúdo com uma abreviação, ou seja, se esse for o arquivo normal.

image.css

Será definido da seguinte forma.

image.pagespeed.css

O exemplo acima é um exemplo muito simples, mas você já pode ver onde está o problema subjacente. Isso pode causar carregamento incorreto de conteúdo estático, devido à impossibilidade de ser encontrado através do caminho principal, devido ao fato de que eles são temporariamente. Este é um problema herdado do Mod_Pagespeed, portanto, é aconselhável mantê-lo desativado.

o responsável pelo rápido apoio do cometa e resolveu meu problema


0

Para o Ubuntu 18.04 (Bionic). Eu usei as etapas a seguir para que os arquivos estáticos sejam carregados corretamente.

Após a conclusão da instalação:

Verifique se o módulo apache 'reescrever' está ativado, caso contrário, faça o seguinte

  • cd /etc/apache2
  • comando de execução a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Em seguida, faça as seguintes alterações

Modifique de:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

para

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Então reinicie o apache

sudo service apache2 restart

ou

sudo /etc/init.d/apache2 restart

Em seguida, altere as permissões para <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

Em seguida, implante o conteúdo estático

  • php bin/magento setup:static-content:deploy -f (-f é necessário se você estiver em desenvolvimento env)

Em seguida, limpe o cache e reindexe

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

OU

  • <magento root directory> rm -R /var/cache*

Em seguida, acesse sua página inicial usando

  • 127.0.0.1/your_configured_url ao invés de localhost/your_configured_url

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.