在视图中使用路径(如{http://localhost:port/foo/bar)时,在我的情况下是ejs,我是否需要在视图中声明完整路径,以加载css / js / images?
视频:https://github.com/poeticninja/hapi-ninja
HAPI忍者/服务器/碱/ 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>
<% }) %>
<% } %>
因为,每次尝试加载时,都会获得相对路径(http://localhost:port/foo/bar/js/script.js)。
答案 0 :(得分: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>
但是,最初的'/'更好。