Após a atualização do Magento 2.1.0 para o Magento 2.1.3 (usando o compositor), o conteúdo estático não está mais carregando. No console do navegador, vejo que todos os arquivos estão indisponíveis (404):
Não vejo diretórios com o nome version*
no pub
diretório
O que eu já fiz, mas não ajudou:
- defina todas as permissões para
777
, mas sem sucesso. - cache limpo
- removeu o
pub/static/*
- conteúdo estático regenerado algumas vezes
- substituiu o
.htaccess
arquivo (nopub/static
diretório) pelo arquivo de um repositório oficial.
Outra informação:
mod_rewrite
está ativadoFollowSymLinks
é permitido (na configuração do host padrão e local.htaccess
)- Essa configuração funcionou bem com o Magento 2.1.0 antes da atualização para o 2.1.3
pub/static
é gravável
Alguma sugestão?
magento-2.1
magento-2.1.3
404
static-content
Siarhey Uchukhlebau
fonte
fonte
Respostas:
O principal problema foi causado pelo trabalho de reescrita incorreto (como @Marius disse). Não havia
RewriteBase
no meu diretóriopub/static/
e o Apache não conseguiu encontrar os arquivos porque os procurou na pasta raiz. Depois de adicionar:RewriteBase /pub/static
tudo começa a funcionar.Como funcionou:
por este endereço:
a reescrita deve funcionar:
como a linha começou na pasta raiz:
não funcionou e não pôde redirecionar para o arquivo, necessário.
Reescreva sem base:
Reescreva com base:
Aqui uma parte do meu
.htaccess
arquivo dopub/static
(reescreve):Como desativar o controle de versão de arquivos estáticos:
Se você não quiser usar o controle de versão de arquivos estáticos, poderá desativar esse recurso na área administrativa do Magento:
É possível alterar essa configuração para o escopo padrão usando a seguinte consulta MySQL :
Em seguida, execute o próximo comando para limpar um cache de configuração:
PS: Minha resposta é real para os usuários do apache2. Se você estiver usando o NGINX, veja esta resposta (por @ kevin-javitz)
fonte
dev/static/sign
existir, insira-o.INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0')
sudo a2enmod rewrite
.Se você estiver executando o Nginx, aqui está a correção. Você provavelmente tem seu próprio arquivo conf, é necessário atualizar a parte / static / com isso, eles atualizaram parte especificamente: # Remova a assinatura dos arquivos estáticos que são usados para superar a seção de cache do navegador:
fonte
RewriteRule ^version.+?/(.+)$ $1 [L]
Acesse o banco de dados e insira uma linha na tabela core_config_data:
fonte
Não deve haver uma
version*
pasta nastatic
pasta.Provavelmente isso acontece porque você não tem o mod_rewrite ativado em sua instância.
O caminho
pub/static/version1234/some/asset.js
deve ser reescrito parapub/static/some/asset.js
. A versão só existe para expiração do cache do navegador.fonte
mod_rewrite
e está habilitado:[root@web www]# httpd -M | grep "rewrite" rewrite_module (shared) Syntax OK
no .htaacess também está habilitado #FollowSymLinks
é permitido. Isso aconteceu comigo depois de instalar a versão mais recente do github e tive um problema com o mod_rewrite e com o FollowSymLinks.FollowSymLinks
está definido comoOptions +FollowSymLinks
e não houve problema com a mesma configuração antes da atualização :(Parece que a versão 2.1.3 assume que o valor padrão para
Stores => Configuration => Developer => Static Files Settings => Sign Static Files
está definido como Sim.Portanto, em vez de alterar as reescritas, é possível definir esse recurso como Não.
Se não for possível fazer isso pelo administrador, porque o administrador falha ao carregar os recursos de front-end, altere / adicione esta configuração na
core_config_data
tabela:Esta questão também está anotada no Github: https://github.com/magento/magento2/issues/7869
fonte
Se você estiver usando apache. Você não deve excluir o .htaccess de pub / static. Você pode obter uma substituição aqui.
fonte
RewriteBase
.