2016-10-31 5 views
0

У меня есть папка public/uploads/... в моем приложении Ember, предназначенном для хранения всех загруженных мной файлов. Он включает в себя изображения, видео, а также некоторые файлы .html, которые я хочу обслуживать через приложение iframe.Обслуживание содержимого iframe из приложения Ember во время разработки

Я пытаюсь служить эти плавающие фреймы в компоненте:

<iframe src="/public/uploads/folder/file.html"> 

Развитие служить предположительно получает запросы для file.html и проверки маршрутизатора, как он выглядит как обычный GET запроса в отличие от актива , Это правильно оставляет меня с ошибкой:

Uncaught UnrecognizedURLError

Есть ли способ, чтобы сообщить серверу ember-cli Дев, что я хочу ему служить этой папке?

+0

Вы используете ember-cli-mirage? Если это так, вы должны добавить: 'this.passthrough ('/ public/uploads/folder/**');' to mirage/config.js –

+0

Спасибо. Я действительно пробовал это, но это не сработало. Насколько я могу судить, этот запрос не доходит до Mirage, поскольку маршрутизатор распознает его как запрос страницы, а затем не находит его в моих маршрутах. –

ответ

2

Возможно, лучше сохранить загрузки вне папки public, например. в отдельной папке uploads.

Чтобы сообщить серверу DEV обслуживать определенную папку, выполните следующую команду:

ember g server 

Это создаст server/index.js, который вы можете настроить.

Добавьте следующие строки внутри экспортируемой функции:

var express = require('express'); 
app.use('/uploads', express.static(__dirname + "/../uploads")); 

Наконец, установите экспресс-зависимость, если вы не используете его:

npm install express --save-dev 

Теперь, после запуска сервера Dev Ember любые файлы в папке uploads могут обслуживаться.

+1

Это прекрасно работает. Что именно происходит? Из того, что я могу сказать, 'server/index.js' позволяет нам настраивать прогон' ember-cli' сервера разработки, и мы говорим ему использовать выражение, когда оно видит запросы на '/ upload/...'? –

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