2015-08-31 2 views
1

У меня есть этот маршрут подкастов. Крючок модели вызывает getJSON для URL-адреса в другом домене. Когда я строю для производства, уголек-кли, кажется, считает это актив и отпечатки пальцев его следующим образом:ember cli построить отпечаток пальца внешнего URL?

http://datafruits.streampusher.com/podcasts/datafruits-d31215e1fe906877c93d6ac2208c8da2.json 

Я пытался добавить его свойству исключения в опции отпечатков пальцев в уголек-CLI-build.js , но я, похоже, получаю тот же результат. Я также попробовал полный URL.

module.exports = function(defaults) { 
    var app = new EmberApp(defaults, { 
    // Add options here 
    fingerprint: { 
     exclude: ['datafruits.json'] 
    } 
    }); 

Да, мое приложение называется «datafruits», если это имеет какое-либо отношение к нему. Вот вышеупомянутый подкастов маршрут:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    actions: { 
    willTransition: function(transition) { 
     Ember.$("#podcastsModal").modal('hide'); 
    } 
    }, 

    setupController: function(controller, model){ 
    this._super(controller, model); 
    Ember.run.schedule('afterRender', this, function() { 
     Ember.$("#podcastsModal").modal('show'); 
     var _this = this; 
     Ember.$("#podcastsModal").on('hidden.bs.modal', function() { 
     console.log("modal exited"); 
     _this.transitionTo('application'); 
     }); 
    }); 
    }, 

    model: function(){ 
    return Ember.$.getJSON('http://datafruits.streampusher.com/podcasts/datafruits.json') 
    .then(function(data){ 
     return data.podcast; 
    }); 
    } 

Остальные мои Ember-кли-build.js:

/* global require, module */ 
var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 
var ES6Modules = require('broccoli-es6modules'); 
var esTranspiler = require('broccoli-babel-transpiler'); 
var mergeTrees = require('broccoli-merge-trees'); 

module.exports = function(defaults) { 
    var app = new EmberApp(defaults, { 
    // Add options here 
    fingerprint: { 
     //prepend: "//datafruitstest.s3-website-us-east-1.amazonaws.com/", 
     exclude: ['datafruits.json'] 
    } 
    }); 

    // Use `app.import` to add additional libraries to the generated 
    // output files. 
    // 
    // If you need to use different assets in different 
    // environments, specify an object as the first parameter. That 
    // object's keys should be the environment name and the values 
    // should be the asset to use in that environment. 
    // 
    // If the library that you are including contains AMD or ES6 
    // modules that you would like to import into your application 
    // please specify an object with the list of modules as keys 
    // along with the exports of each module as its value. 
    app.import(app.bowerDirectory + '/bootstrap/dist/js/bootstrap.js'); 
    app.import(app.bowerDirectory + '/bootstrap/dist/css/bootstrap.css'); 
    app.import(app.bowerDirectory + '/moment/moment.js'); 
    app.import(app.bowerDirectory + '/fullcalendar/dist/fullcalendar.css'); 
    app.import(app.bowerDirectory + '/fullcalendar/dist/fullcalendar.js'); 
    app.import(app.bowerDirectory + '/jplayer/dist/jplayer/jquery.jplayer.js'); 
    app.import(app.bowerDirectory + '/jsTimezoneDetect/jstz.min.js'); 
    app.import(app.bowerDirectory + '/emojione/assets/css/emojione.css'); 
    app.import(app.bowerDirectory + '/emojione/lib/js/emojione.js'); 
    app.import(app.bowerDirectory + '/autolink/autolink.js'); 

    var phoenixTree = "./vendor/phoenix"; 
    var phoenixAmdFiles = new ES6Modules(phoenixTree, { 
    format: 'amd', 
    esperantoOptions: { 
     strict: true, 
     amdName: "phoenix" 
    } 
    }); 
    var phoenixTranspiledFiles = esTranspiler(phoenixAmdFiles, {}); 

    return mergeTrees([app.toTree(), phoenixTranspiledFiles]); 
}; 

ответ

2

broccoli-asset-rev библиотека, которая делает отпечатки пальцев, кажется, хочет исключены имена файлов без расширения. Если вы используете следующее, он должен строить без снятия отпечатков пальцев datafruits.json:

fingerprint: { 
    //prepend: "//datafruitstest.s3-website-us-east-1.amazonaws.com/", 
    exclude: ['datafruits'] 
} 
+0

Это делает работу, но теперь мое приложение JS не сняли отпечатки пальцев, потому что мое приложение называется «datafruits». :( – freedrull

+0

[Глядя на свои тесты] (https://github.com/rickharrison/broccoli-asset-rev/blob/master/tests/filter-tests.js#L94), это может быть ошибка. сообщите, по крайней мере, о том, действительно ли это что-то не работает с lib. – trabus

+0

Так что, смотря дальше, я считаю, что это проблема с ['broccoli-asset-rewrite'] (https://github.com/rickharrison/broccoli- активация-переписывание), где он не учитывает тот факт, что файл не является тем же, что и приложение JS (которое должно быть отпечатано на нем). По-видимому, он не учитывает полный путь к файлу при переименовании путей – trabus

Смежные вопросы