Eu baixei e instalei o Magento 2 em https://github.com/magento/magento2
Mas estou recebendo o erro 404 para scripts e cs localizados em http: // localhost / magento2 / pub / static /
Eu verifiquei, o mecanismo de reescrita do Apache está ativado. Mas ainda assim, os arquivos css e js não estão carregando.
Quando tento acessar um arquivo diretamente do navegador, ele dá a seguinte exceção.
Cannot create a symlink for "D:/xampp/htdocs/magento2/lib/web/mage/calendar.css" and place it to "D:/xampp/htdocs/magento2/pub/static/frontend/Magento/blank/en_US/mage/calendar.css" Warning!symlink(): Cannot create symlink, error code(1314)
#0 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\Filesystem\Directory\Write.php(155): Magento\Framework\Filesystem\Driver\File->symlink('D:/xampp/htdocs...', 'D:/xampp/htdocs...', Object(Magento\Framework\Filesystem\Driver\File))
#1 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink.php(30): Magento\Framework\Filesystem\Directory\Write->createSymlink('lib/web/mage/ca...', 'frontend/Magent...', Object(Magento\Framework\Filesystem\Directory\Write))
#2 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(65): Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink->publishFile(Object(Magento\Framework\Filesystem\Directory\Write), Object(Magento\Framework\Filesystem\Directory\Write), 'lib/web/mage/ca...', 'frontend/Magent...')
#3 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(49): Magento\Framework\App\View\Asset\Publisher->publishAsset(Object(Magento\Framework\View\Asset\File))
#4 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\StaticResource.php(118): Magento\Framework\App\View\Asset\Publisher->publish(Object(Magento\Framework\View\Asset\File))
#5 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\Bootstrap.php(245): Magento\Framework\App\StaticResource->launch()
#6 D:\xampp\htdocs\magento2\pub\static.php(13): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\StaticResource))
#7 {main}
Meu sistema operacional é o Windows 7 e estou executando o servidor xampp.
Respostas:
Quando não estiver no modo de produção, o Magento 2 tentará criar links simbólicos para alguns recursos estáticos. Você pode alterar esse comportamento fazendo o seguinte.
Abra
app/etc/di.xml
e encontre avirtualType name="developerMaterialization"
seção. Nessa seção, você encontrará um itemname="view_preprocessed"
que precisa ser modificado ou excluído. Você pode modificá-lo alterando o conteúdo deMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
paraMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Exclua os arquivos em pub / static para se livrar de quaisquer links simbólicos existentes. Você pode ter cuidado para não excluir o
.htaccess
arquivo.Isso deve resolver seu erro com o link simbólico.
fonte
Eu enfrentei esse problema e tentei descobrir. Eu concordo com Chris O'Toole. Vou adicionar passo extra. Meus passos são,
Substitua o Symlink por Copiar palavra. Salve .
Exclua todas as pastas em pub / static. Não exclua .htaccess e outros arquivos.
Execute o xampp como administrador. Execute a linha de comando como administrador. Corra
grunt exec:<theme name>
.Você verá que está funcionando bem.
Então você pode correr
grunt less:<theme name>
Finalmente você pode executar
grunt watch
Quando você faz alterações em menos arquivos (_theme.less ou _extend.less), ele cria automaticamente arquivos estilo-le estilo-m css na pasta pub / static.
Estou executando o magento 2.1 no windows 10.
fonte
Lembre-se de atualizar as permissões de arquivo depois que o Magento criar esses novos arquivos estáticos. Eles não são de propriedade de www-data, portanto, fornecerão 404.
fonte
No meu caso, não foi porque o meu
app/etc/di.xml
tinhaMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
como mencionado pelo @Chrish. Foi porque um dos meus módulos teve um erro de script no meu.phtml
arquivo. Eu recomendaria verificar seu código no.phtml
arquivo. No meu caso, foi resolvido fazendo a correção no meu arquivo de scriptinitialize.phtml
.fonte
Achei importante usar a permissão correta para o apache com mod_php para o pub / static e var / folders. No artigo de Alan Storm, http://alanstorm.com/magento_2_adding_frontend_files_to_your_module
Você deve executar isso no terminal do servidor. Isso me corrigiu o erro 404 para os scripts e imagens.
ps Mas isso é para o Linux.
fonte
chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
Eu acho que a maneira correta de fazer isso é da linha de comando: cd para o diretório magento e execute o seguinte comando:
var/cache
Diretório vazio e cheque.fonte
Apenas excluiu todos os arquivos em
pub/static/*
. O Magento gera automaticamente os arquivos estáticos para você quando você carrega uma página.fonte
Você deve executar o Xampp (apache, nginx) etc. como administrador para permitir que ele faça Symlinks no Windows (testado com o Windows 10).
fonte