2015-05-05 2 views
3

В экспресс У меня есть следующий маршрут:Экспресс обслуживания статического актива файлы относительно пути вместо абсолютного

app.get('/story/:username', function(req, res){ 
    res.render('dashboard.ejs'); 
}); 

И перед тем, что служу статические файлы, расположенные в /public:

app.use(express.static(__dirname + '/public')); 

сейчас Я считал, что это обслуживает корневой каталог, поэтому, когда я посетил путь http://localhost:8080/story/user17, он все равно сможет вытащить мои статические файлы, такие как css/main.css от http://localhost:8080/css/main.css. Вместо этого, когда я пытался загрузить страницу и проверил консоль я продолжал видеть эту ошибку:

GET http://localhost:8080/story/css/main.css (404) 

для всех моих статических файлов. Почему он пытается загрузить все статические файлы из относительного каталога вместо абсолютного корня и как его исправить?

ответ

3

Изменить путь к файлу CSS в dashboard.ejs от css/main.css к ../css/main.css так, что он может быть найден из страницы браузер видит, как /story/someUser

+0

Ах, как глупо с моей стороны, он теперь работает отлично! Спасибо! –

+1

Как насчет '/ story/someUser/anotherOne /'? Лучше изменить его на '/ css/main.css'. –

+0

@AleksandrM Обычно лучше сохранять относительный URL-адрес, чтобы вы могли проксировать вещи, например. Когда вы не можете, вы должны сохранить некоторый след пути к серверу –

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