Verwenden Sie die ursprüngliche URL, nicht Proxy, mit Browser-Sync
Kürzlich wechselte von Grunt.js zu Gulp.js als mehrere Menschen erzählte mir, wie viel besser und schneller, es wa (es ist wahr!). Ich habe BrowserSync zu meinem Gulpfile.js, so dass es leichter zu testen, auf mehreren Geräten. Es funktioniert Super und war einfach zu installieren. Zum Kontext, ich entwickle WordPress-Seiten für 95% meiner Arbeitszeit, und Sie laufen auf einem Apache-Virtual-Host, mit Multisite aktiviert, und haben viele lokale sub-domains für jeden client, e.g site1.domain.dev, site2.domain.dev, etc. Das funktioniert großartig, und ich habe das getan, es auf diese Weise für ein paar Jahre jetzt. Da jedoch BrowserSync erstellt werden muss, einen proxy zu meiner Website, so ist es in der Lage, zu synchronisieren und zu injizieren, die CSS, die Seite aktuell läuft durch BrowserSync ist an http://localhost:3000
. Das ist in Ordnung, und ich verstehe, warum es muss geschehen, aber es verwirrt mit WordPress ein wenig (wie die URL ist nicht das gleiche, etc), plus ich bin ein großer TypeKit - /Cloud-Schriftarten, Benutzer, was bedeutet, dass weil die Seite wird weitergeleitet auf localhost keine der Schriften geladen werden. Natürlich, ich könnte einfach hinzufügen http://localhost:3000
auf der Liste der Domänen für jede Website auf TypeKit, aber das fühlt sich ein bisschen wie ein workaround und Frage mich, ob es einen besseren Weg, es zu tun.
Habe ich Hinzugefügt, in der BrowserSync Teil meiner Gulpfile.js:
gulp.task('serve', function() {
browserSync({
proxy: 'site1.domain.dev'
});
gulp.watch('assets/styles/source/**/*.scss', ['styles']);
gulp.watch('*.php', reload);
gulp.watch('assets/js/source/*.js', ['scripts']);
gulp.watch('assets/js/plugins/**/*.js', ['plugins']);
});
Also meine Frage ist, wäre es möglich, BrowserSync, um direkt zu meiner URL (http://site1.domain.dev) anstelle von routing-obwohl es http://localhost:3000
? Als zusätzlichen bonus, es wäre fantastisch, wenn die domain entfernt werden konnten, aus dem BrowserSync proxy-Eigenschaft, da ich ein Automatisierungs-script, um eine neue Seite auf meinem WP-Multisite-installation und nicht wirklich wollen, zu Bearbeiten, meine gulpfile jedesmal, wenn ich eine neue Website einrichten.
Danke für die Hilfe! 🙂
xip: true
in Ihrem browser sync-option und fügen Sie *.xip.io
, um die TypeKit-domains. Siehe 1 und 2. Als workaround für den rest, es könnte möglich sein, Nginx oder etwas gleichwertiges finden Sie unter diese Frage. InformationsquelleAutor der Frage Tom Oakley | 2015-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich, es funktionierte durch die Angabe
host
und dannopen:
'external'
, wie diese:InformationsquelleAutor der Antwort joscha
Prüfen Sie, ob es Ihnen helfen wird. Meine gulpfile.js sieht wie folgt aus:
Nach der Ausführung von Gulp, die Konsole zeigt ein code-snippet, das Sie benötigen, um in Ihre HTML-bevor die
</body>
. Die version der browser-sync-client und der port, den Sie verwenden, unterschiedlich sein können. Hinweis: nach dem einfügen des snippets im code, die Meldung wird immer noch angezeigt. Ab version 1.5.2 von BrowserSync, Sie können deaktivieren Sie die log-snippet mitlogSnippet: false
in Ihrer Konfiguration.Nachdem Sie legen Sie die generierten snippet in Ihre Datei, speichern Sie die Datei und öffnen Sie die Adresse http://site1.domain.dev ohne den port in Ihren browser. Wenn alles korrekt ist, wird die Website aktualisieren, die auf Veränderungen von
browserSync.files
.Können Sie eine überprüfung, um nur dieses snippet in Entwicklungsumgebungen. Zum Beispiel habe ich mit Hilfe von PHP und CodeIgniter in meinen Projekten so, nur in Entwicklungsumgebungen, Tue ich dies:
InformationsquelleAutor der Antwort thiagobraga
Gute Frage - ich bin auf WordPress zu und hatte ein ähnliches Problem. Die Dokumentation auf der BrowserSync Website nicht wirklich klar machen, aber ich stieß auf eine Lösung zu meinem problem auf der Seite der BrowserSync UI, der läuft bei http://localhost:3001/. Die Meldung kommt beim ausführen von BrowserSync ohne Modus-flag wie
--proxy
.Wenn Sie fügen Sie das snippet irgendwo vor Ihrer Schließung
</body>
tag, und führen Sie BrowserSync ohne die
--proxy
Flagge, zum BeispielWird es aktualisieren Sie Ihre Website auf Ihre normale Adresse. Ich werde wickeln Sie das snippet in einem Zustand, so wird es nur noch auf meinen dev-Umgebungen - in Zukunft vielleicht eine Art person schreiben könnte ein LiveReload-Stil Chrome-Erweiterung, die Arbeit zu tun. Nicht sicher, ob dieser passt in Ihrem bestimmten Fall mit Schlucken, aber es funktioniert mit dem command-line.
InformationsquelleAutor der Antwort And Finally
Mit Variation-Landstreicher-Landstreicher ich befolgen Sie die Lösungen, die bereits erwähnt, aber ich hielt immer einen
net::ERR_CONNECTION_REFUSED
bei der Abfrage von Browser-Sync, um das zu beheben habe ich Folgendes:gulpfile.js
Läuft
gulp serve
auf Ihrem terminal anmelden, ein snippet von diesem snippet nehmen, die version der browser-sync-client und ersetzen Sie es in:functions.php
Beachten Sie, dass der host-name des Skripts ist die gleiche wie die socket-domain
localhost:3000
und dass an diesem Punkt sollten Sie in der Lage, Ihr domain-name und die Browser-Sync Neuladen Ihrer Website, wenn jede php-Datei geändert wird.Wenn Sie möchten, um loszuwerden, das snippet, das Browser-Sync-Protokolle:
InformationsquelleAutor der Antwort a.guerrero.g87
Hier ist was für mich gearbeitet, wenn ich da die Bereitstellung der app, die es braucht, zu hören auf allen Adressen mit
0.0.0.0:5000
- genau wie Heroku hat. Ich benutze dokku und open-source-option für eine Heroku-wie PaaS.Es immer noch öffnet auf
localhost:5000
wenn ich dasgulp
Aufgabe, da ich aber in der Regel müssen nur Schluck für die Entwicklung und nicht die Produktion dieser wurde arbeiten gut für mich.InformationsquelleAutor der Antwort Seth Bergman