2016-03-19 15 views
0

Ich bereite eine Demo meiner neuen Ember-App vor, die sie vorübergehend auf einem statischen http-Server bereitstellt, ohne ein richtiges Backend.ember demo ember-cli-mirage funktioniert nicht auf dem Server ohne Backend

Ich habe das Projekt konfiguriert, um seine Daten aus Mirage zu holen, und es funktioniert gut lokal.

Das Problem ist, dass, wenn ich es auf meinen http-Server hochladen, die Illusion nicht zu funktionieren scheint, und die Demo aufwirft:

vendor-1bce2a3….js:11 Error while processing route: activities Ember Data Request GET /activities returned a 404 
Payload (text/html) 
[Omitted Lengthy HTML] Error: Ember Data Request GET /activities returned a 404 
Payload (text/html) 
[Omitted Lengthy HTML] 
    at new Error (native) 
    at Error.r (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:8:14790) 
    at Error.n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:19:25963) 
    at e.default.r.default.extend.handleResponse (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29329) 
    at c.error (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:22:29898) 
    at u (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:9669) 
    at Object.c.fireWith (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:2:10437) 
    at n (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:13352) 
    at XMLHttpRequest.<anonymous> (http://www.my-domain.com/myproject/assets/vendor-1bce2a36ef171f16e76daffe157c9b37.js:3:19180) 

dies meine Konfiguration von mirage ist:

// app/mirage/config.js 
export default function() { 

    this.get('/activities', function(db, request) { 
    return { 'activity': db.activity }; 
    }); 

    this.get('/activities/:id', function(db, request) { 
    var id = request.params.id; 
    return { 'activity': db.activity.find(id) }; 
    }); 
} 

funktioniert es auf meinem lokalen Rechner finden, aber es wird nicht auf dem http-Server funktionieren, irgendwelche Ideen, wie man die Demo zum Laufen bringt?

Danke,

+1

Ist der Server, den Sie versuchen, Dinge auf Apache zu arbeiten? Nginx? IIS? – chrixian

+0

Ich denke, es ist ein Apache, es ist einer dieser Web-Hosts, wo Sie PHP-Websites veröffentlichen können, ich habe eine Wordpress-App im root, und erstellt ein Verzeichnis darin und versuchen, es über zu erreichen: 'http: //www.my- domain.com/myproject/' –

Antwort

2

ist standardmäßig deaktiviert Mirage in production baut. Sie können es mit der ENV Option aktivieren:

// app/config/environment.js 
... 
if (environment === 'production') { 
    ENV['ember-cli-mirage'] = { 
    enabled: true 
    } 
} 

die Dokumentation für weitere Informationen siehe: http://www.ember-cli-mirage.com/docs/v0.1.x/server-configuration/#enabled

+0

danke dafür, ich bekomme aber die folgenden Fehler:' mirage/config.js: Zeile 3, Spalte 7, 'Umgebung' ist nicht definiert.' und 'mirage/config.js: Zeile 4, Spalte 5, "ENV" ist nicht definiert. "irgendwelche Ideen? –

+0

danke, eigentlich war die zu ändernde Datei 'config/environment.js' wie hier erwähnt:' http://www.ember-cli-mirage.com/docs/v0.1.x/server-configuration/ 'danke für gib mir den Hinweis. –

+0

Ja, du hast recht! –

0

Da Sie sagten, Sie PHP verwenden können Sie verwenden Apache wahrscheinlich und wird sich ändern müssen, wie es verarbeitet Anforderungen Wenn Sie mit html5 ... pushstate arbeiten, um es nicht bereits eine .htaccess Datei in Ihrem /myproject Verzeichnis erstellen und sie enthalten:

FallbackResource /myproject/index.html 

Dies wird Apache entlang alle Anfragen für Dinge passieren müssen, dass existiert nicht (und würde normalerweise 404 ergeben) zu dem angegebenen Pfad ...

Verwandte Themen