2015-09-29 3 views
-3

При использовании маршрутов, например (http://localhost:port/foo/bar), в представлении, в моем случае ejs, мне нужно объявить полный путь в представлении, чтобы загрузить css/js/images?Доступ к статическим файлам (js/css ..) HapiJS, EJS, NodeJS

Виде: https://github.com/poeticninja/hapi-ninja

хапи-ниндзя/сервер/основание/index.js

... 
{ 
    method: 'GET', 
    path: '/foo/bar', 
    config: { 
    handler: function(request, reply){ 
     reply.view('about', { 
     title: 'Super Informative About Page' 
     }); 
    }, 
    id: 'about' 
    } 
}, 
... 

например: foot.ejs

<!-- Include the JS --> 
<% if (assets.js.length) { %> 
    <% assets.js.forEach(function(js){ %> 
     <script src="<%=js%><%=version.cache%>"></script> 
    <% }) %> 
<% } %> 

Причина, каждый раз, когда я пытаюсь загрузить, я t получает относительный путь (http://localhost:port/foo/bar/js/script.js).

+1

доказательства указывают на да, но это всегда зависит от пути URL, используемого для запроса страницы относительно активов. –

ответ

0

Как описано сам создатель:

Первое решение:

@poeticninja commented 4 hours ago В файле активов сделать дорожки /js/script.js и не JS/script.js. Это исправит вашу проблему.

Другое 'решение':

В assets.js

// assets to be used by the 'hapi-assets' module based on process.env.NODE_ENV 
module.exports = { 
    development: { 
     js: ['js/jquery-2.1.4.js', 'js/bootstrap.js'], 
     css: ['css/bootstrap.css', 'css/bootstrap-theme.css', 'css/3-col-portfolio.css'], 
     host: 'http://development:PORT/' 
    }, 
    production: { 
     // TODO: Add the resources minified. 
     js: ['js/jquery-2.1.4.js', 'js/bootstrap.js'], 
     css: ['css/bootstrap.css', 'css/bootstrap-theme.css', 'css/3-col-portfolio.css'], 
     host: 'http://production:PORT/' 
    } 
} 

и в зрения:

<script src="<%=assets.host%><%=js%><%=version.cache%>"></script> 

Но, с начальным «/ ', лучше.

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