2016-04-01 3 views
0

Datei verfügbar. Funktioniert auf lokalen und GitHub-Seiten, aber mit Nginx. Auch auf Nginx kann ich die JSON-Datei richtig aus dem Browser holen, nur nicht in der Ember-App auf Nginx. nur auf NginxNginx nicht Datei auf dem Weg durch Ember.js

export default Ember.Route.extend({ 
    model: function() { 
     return $.getJSON('data/contributors.json') 
    } 
}) 

Ergebnisse in diesem Fehler:

server.js:76 Mirage: Your Ember app tried to GET 'data/contributors.json', but there was no route defined to handle this request. Define a route that matches this path in your mirage/config.js file. Did you forget to add your namespace? 

Standort Config auf nginx:

location/{ 
      # First attempt to serve request as file, then 
      # as directory, then fall back to displaying a 404. 
      try_files $uri $uri/ =404; 
      # Uncomment to enable naxsi on this location 
      # include /etc/nginx/naxsi.rules 
      try_files $uri /index.html; 

    } 

    location /data { 
      try_files $uri /contributors.json 
    } 

config/environment.js

if (environment === 'internal') { 
ENV.baseURL = '/' 
ENV['ember-cli-mirage'] = { 
    enabled: true 
} 
ENV.mirageNamespace = '<ip address>' 
ENV.isProd = true 
ENV.isDemo = true 

}

Jede Hilfe bei der Lösung des Fehlers wird sehr geschätzt.

Antwort

0

Sie haben Mirage aktiviert, das Netzwerkanforderungen abfängt und selbst verarbeitet. Wenn Sie Ihre App bereitstellen, sollten Sie einen Build mit --environment production erstellen, der Mirage standardmäßig deaktiviert.

Wenn Sie Mirage aus irgendeinem Grund manuell aktivieren, aber dieses Verhalten nicht erwünscht ist, können Sie this.passthrough() am Ende Ihrer mirage/config.js-Datei hinzufügen, damit die Anforderung das Netzwerk tatsächlich erreichen kann.

+0

Ich habe dies aber es funktioniert nicht. Der Nginx-Server funktioniert, wenn ich '' ember build' 'tue ... (Ich habe auch meine environment.js-Datei zur Frage hinzugefügt) – Hillboy

+0

Ist der Host Ihres API/Ember-Datenadapters auf etwas anderes als die Domäne der Ember-App festgelegt? ? Wenn dies der Fall ist, müssen Sie diese Domäne in dem Aufruf von "Passthrough" angeben, z. 'this.passthrough ('mein.api.com/**')' –

Verwandte Themen