2014-11-30 3 views
0

мой экспресс-файл выглядит примерно так:экспресс-файл не служит приложение

var express = require('express'); 
var http = require('http'); 
var conf = require('./conf'); 

var app = express(); 


/*********** start server ************/ 
http.createServer(app).listen(conf.port, function() { 
    console.log('Express server listening on port ' + conf.port); 
}); 


/****** Serving Static pages *********/ 
app.use(express.static(__dirname + '/../client/dist/src/')); 

расстояние папки выглядит примерно так:

dist/ 
    jquery_lib.js 
    angular_lib.js 
    app.js 
    src/ 
     index.html 
     partials/ 
      state1.tpl.html 
      state2.tpl.html 

Когда я посещаю

http://localhost:12345/index.html 

в браузер, браузер не может найти

jquery_lib.js, angular_lib.js и app.js index.html ссылается на эти файлы, как показано ниже:

<script src="../jquery_lib.js"></script> 
    <script src="../angular_lib.js"></script> 
    <script src="../app.js"></script> 

Любые подсказки, почему браузер не может найти эти файлы?

ответ

0

express.static() только обслуживает файлы из базового каталога, который вы передаете ему. Если вы смогли выйти из базового каталога и получить доступ к родительским каталогам/файлам, это будет серьезным нарушением безопасности.

Так положить jquery_lib.js и angular_lib.js файлы внутри src/ где-то и обновить HTML src= значения соответственно.

0

Вы также можете сделать что-то вроде:

app.use('/assets',express.static(path.join(__dirname,'public/assets'))); 

Теперь, делая это преимущества, которые вы собираетесь получить это в вашем HTML или любой другой механизм шаблонов вы используете, вы можете просто положить ваши файлы в общественных местах/активы и ссылаются на него как src = "assets/xyz/abc.js".

Таким образом, управление публичными библиотеками становится очень простым.

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