Ich möchte ein Skript bei der Veröffentlichung, die alle url() Deklarationen in einer CSS-Datei mit dem vollständigen Domain-Pfad ersetzt, weil Bilder in einem statischen Web gehostet werden Server.Ersetze URL() relativen Pfad mit voller Domäne in CSS-Dateien
Beispiel
Current: background-image: url(/images/menu.gif);
Desired: background-image: url(http://example.com/images/menu.gif);
Current: background-image: url('/images/menu.gif');
Desired: background-image: url('http://example.com/images/menu.gif');
Current: background-image: url("/images/menu.gif");
Desired: background-image: url("http://example.com/images/menu.gif");
Ich habe einen Bash-Skript mit sed zusammengebraut genau das zu tun, aber es behandelt nicht url mit Zitaten url (‚‘) oder URLs, die bereits einen vollständigen Pfad haben.
STATIC_HOST="http://example.com"
sed -i '' "s|url(\([^)]*\)|url($STATIC_HOST\1|g" main.css
Haben Sie diejenigen ignorieren möchten, die bereits den vollständigen Pfad haben? – SiegeX
Ja, aber am wichtigsten muss ich in der Lage sein, die Fälle mit Einzel- und Doppelquoten zu verarbeiten. Die obigen Testfälle wurden aktualisiert. – deepwell