2016-02-08 1 views
1

У меня есть мобильное приложение, которое загружает изображения через http. Я использую параметр GET для перебора кеша. В QA и Production изображения подаются через S3, и это отлично работает. Но в разработке я обслуживаю их непосредственно из моего узла/выражения с помощью express.static(). Но здесь параметр get делает статический файл не найденным. Есть ли способ сказать express.static игнорировать параметр GET? Я выкопал код, но мог найти что-то очевидное. Идеи?Как сделать express.static middleware игнорировать параметр get?

+++ +++ UPDATE

код и использование Пример:

//serve assets on the dev server only 
if ((process.env.NODE_ENV || 'DEVELOPMENT') == 'DEVELOPMENT') { 
    app.use(express.static(path.resolve(__dirname,'..','public'))); 
} 

Это один работает: LOCALHOST: 3000/активы/аватары/example.png

Это один Безразлично» t: localhost: 3000/assets/avatars/example.png? v = 2

+++ CLOSED ++++

Ошибка, как было предложено ниже, не имеет ничего общего со статической маршрутизацией. Искренние извинения за то, что тратили свое время.

+1

Можете ли вы показать, что вы до сих пор, или пример? Из того, что это звучит, я не думаю, что должна быть какая-то проблема. – Jordonias

+0

Кроме того - вы уверены, что всегда хотите сделать недействительным свой кеш в производстве? Кэши могут быть там по уважительной причине. – duncanhall

+0

Какую экспресс-версию вы используете? В общем, «статическое» промежуточное ПО представляет собой небольшой [модуль] (https://github.com/expressjs/serve-static/blob/master/index.js), если вы не можете его настроить, вы можете просто скопировать и измените его в соответствии с вашими потребностями, а затем используйте 'myStatic()' вместо 'express.static()'. –

ответ

1

Экспресс работает весь маршрут вы определяете один за другим, так что если вы делаете:

app.use('/',express.static('/')) 
app.get('/myparamter',function(req,res,next){ 
    res.send('This Will never be called') 

}) 

Но если вы делаете:

app.get('/myparamter',function(req,res,next){ 
    res.send('This Will be called if you request /myparmeter') 
}) 

// If not another route matches the URL it will server default static file. 
app.use('/',express.static('/')) 
+0

Спасибо за ваш ответ. Но настройка работает отлично для всех файлов. За исключением случаев, когда я использую параметр get. –