Wie werden SailsJS-Routen zur Unterstützung von "Pushstate" eingerichtet, können jedoch Anforderungen mit dem Präfix /api
zusammen mit statischen Ressourcen auch bedient werden?So richten Sie Sails.js-Routen zur Unterstützung von Pushstate mit einem SPA am Frontend ein
Verwendung:
- Backbone 1.x mit
pushState: true
- Segel 0.10.x
vorgeschlagene Lösung aus diesem thread ist die /*
Platzhalter zu verwenden und alle im Hinblick auf den Index umleiten.
/path/to/app/config/routes.js
'/*': {
view: 'index'
}
Das Problem ist, dass dies alles zu indizieren umleitet. einschließlich statischer Datei-Assets scheint die Express.static-Middleware keine Wirkung zu haben, diese Route hat irgendwie Vorrang.
Auch dieser Präfix unten keine Auswirkungen hat, da die Route über Vorrang, aber das Präfix funktioniert, wenn ich nur den Platzhalter dh '/': { view: 'index' }
/path entfernen/zu/app/config/Plan Js
module.exports.blueprints = {
...
prefix: '/api',
...
}
Offensichtlich scheint dies nicht als Kern sailsJS Problem, sondern meine minimalen Kenntnisse der Express.js Router, denn das ist, was sailsjs verwendet.
Theoretisch könnte ich explizit nur alle Vermögenswerte auflisten Routen Präfix und einen Controller, allen zu dienen, da sie gut bekannt sind und statisch, dh '/js*': { controller: 'AssetsController', action: 'serve'
, und so weiter für '/styles*'
, '/images*'
, '/templates*'
, '/fonts*'
, aber ich Da ich wirklich zögerlich bin, hoffe ich auf eine bessere Übungslösung.
das wird sich auch nicht diese Routen /api
Problem mit dem '/*'
Ich bin auf 0.10.0-rc4, also wth - Vielen Dank, Ihr erster Vorschlag ist, was ich suche. – bentael
möchte nur darauf hinweisen, dass das Regexp-Muster bei '/' beginnen muss, also 'skipRegex:/^ \/api \ /.*$/' - Ich habe Ihren Beitrag bearbeitet. Danke – bentael
Danke für die Antwort. Wie kann ich auf index.html von öffentlichen Ordner statt von Ansichten verweisen? –