Magento 2: Fichiers JS, CSS et images manquants

Comme vous pouvez le voir sur cette capture d’écran, après une installation toute fraiche de Magento 2.1.5, une partie des fichiers javascript, css et des images sont manquants !
magento-missing-files
En inspectant la page il est aisé de voir que ces ressources sont chargées à partir du dossier…

/pub/static/frontend/Magento/luma/en_GB/

… qui n’existe pas sur ma machine.
Soit dit en passant ce fameux sous-dossier « en_GB » correspond à la locale que j’ai choisie lors de l’installation.

Après quelques recherches j’en ai conclu qu’il s’agissait là d’un problème de contenu statique non déployé.

Ni une ni deux, j’ai dégainé un script bash pour éviter d’avoir (éventuellement) à ressaisir 3 lignes de code !!!

#!/bin/bash
./chmod.sh
rm -fr pub/static/*
php bin/magento setup:static-content:deploy en_US en_GB
./chmod.sh

et de suite c’est beaucoup mieux…

magento-missing-files.2

Pour le contenu du script « ./chmod.sh » je vous renvoie à l’article précédent

Ha la la Magento … toujours des petites tracasseries lors de l’installation !

Installation de Magento 2 et page blanche !

Après avoir suivi la procédure « easy install » de Magento 2, je me suis retrouvé face à un écran entièrement vide.
Faut croire que j’ai survolé les différentes étapes !

Un simple chown et quelques chmod exécutés à partir du dossier magento suffisent à résoudre le problème…

sudo chown `whoami`:`whoami` ./*
sudo chmod -R 777 app/etc
sudo chmod -R 777 var
sudo chmod -R 777 pub/media
sudo chmod -R 777 pub/static

Magento 2 & Lighttpd configuration

Reprise des activités Magento avec sa nouvelle version 2.1.4 et sa configuration Lighttpd.
Cette configuration se base largement sur celle fournie par Anton Samuelsson avec quelques ajustements dont la suppression du message d’avertissement de sécurité du backoffice.

# ==========================
# --- Magento 2 Lighttpd ---
# ==========================
#
# Magento  : 2.1.4
# Lighttpd : 1.4.43+git20161216-1
#
# Require "mod_access" module
#
# 2017.02.02 : Init (Based on Anton Samuelsson config. https://gist.github.com/freestream/)
# 2017.02.15 : Disable access to "/app/etc/config.php" (This remove backoffice warning)

server.modules += ("mod_access")

$HTTP["host"] =~ "^(magento2)" {
    server.document-root = "/var/www/magento2/"

    setenv.add-environment = (
        # default       Disables static file caching, provides verbose logging,
        #               automatic code compilation, enhanced debugging.
        #
        # developer     Static file caching is enabled, automatic code
        #               compilation is enabled, exceptions are not displayed to
        #               the user; instead, exceptions are written to log files.
        #
        # production    Exceptions are not displayed to the user, exceptions are
        #               written to logs only, and static files are not cached.
        #
        "MAGE_MODE"         => "default",

        # Unknown result. Both are currently broken.
        #
        # firebug
        # csv
        #
        #"MAGE_PROFILER"     => "firebug"
    )

    var.asset_allowed_img_ext   = "ico|gif|jpg|JPEG|jpeg|png|css|swf|pdf|ttf|woff2|woff|xml|wsdl|svg|otf|eot"
    var.asset_allowed_oth_ext   = "|js|zip|gz|gzip|bz2|csv|xml|html|json"

    expire.url = (
        "/pub/(static|media)/.*\.(" + var.asset_allowed_img_ext + ")"   => "access plus 7 days",
    )

    $HTTP["url"] =~ "/pub/(static|media)/.*\.(" + var.asset_allowed_img_ext + ")" {
        setenv.add-response-header = (
            "Cache-control" => "public, max-age=604800",
        )
    }

    $HTTP["url"] =~ "/pub/(static|media)/.*\.(" + var.asset_allowed_oth_ext + ")" {
        setenv.add-response-header = (
            "Cache-control" => "no-store",
        )
    }

    var.asset_allowed_ext   += var.asset_allowed_img_ext
    var.asset_allowed_ext   += var.asset_allowed_oth_ext
    var.asset_file_regex    = "([-\w^&'@{}[\],$=!#().%+~\/ ])+(\.(" + var.asset_allowed_ext + "))(\?.*|)"

    url.redirect = (
        "^/pub/static/version([\d]+)/(.*)" => "/pub/static/$2"
    )

    url.rewrite-if-not-file = (
        "^/pub/static/(" + var.asset_file_regex + ")$"      => "/pub/static.php?resource=$1",
        "^/pub/media/(" + var.asset_file_regex + ")$"       => "/pub/get.php?resource=$1",
        "^/setup"                                           => "/setup/index.php$1",
        "(.*)"                                              => "/index.php$1"
    )

    $HTTP["url"] =~ "^/app/|^/pub/media/customer/|^/pub/media/downloadable/|^/pub/errors/.*\.(xml|phtml)$" {
        url.access-deny = ( "" )
    }

    $HTTP["url"] == "/app/etc/config.php" {
        url.access-deny = ( "" )
    }

    $HTTP["url"] =~ "^/pub/media/theme_customization/.*\.xml$" {
        url.access-deny = ( "" )
    }

    $HTTP["url"] == "/pub/cron.php" {
        url.access-deny = ( "" )
    }

    $HTTP["url"] =~ "(index|get|static|report|404|503)\.php$" {
        setenv.add-environment = (
            "PHP_FLAG"      => "session.auto_start=off \n suhosin.session.cryptua=off"
        )
    }

    accesslog.filename = "/var/log/lighttpd/magento2.access.log"
}

Magento

Aujourd’hui je démarre une série de posts (totalement HS) sur Magento, par curiosité personnelle, avec pour objectif d’en apprendre un peu plus sur la gestion du catalogue produits au travers de l’api en version 2.
C’est le manque de documentation, ou mon incapacité à l’a trouver, qui m’incite à démarrer cette série.

A l’heure actuelle, mes tests se basent sur la version 1.7.0.0-beta1 1.7.0.0-rc1 de Magento téléchargeable ici : http://www.magentocommerce.com/download

NB : 15 avril 2012
Suite à une mise à jour vers la version 1.7.0.0-rc1, certains menus ont changé et peuvent ne plus correspondre à mes captures d’écran. Dans le mesure du possible, je vais reprendre les anciens posts pour les mettre à jour.

Index des posts :

Attributs

Produits