访问静态文件 (js/css..) HapiJS、EJS、NodeJS
Access static files (js/css..) HapiJS, EJS, NodeJS
当使用路由时,例如 (http://localhost:port/foo/bar),在视图中,在我的例子中是一个 ejs,我是否需要在视图中声明完整路径以加载 css/js/images?
视频:https://github.com/poeticninja/hapi-ninja
hapi-ninja/server/base/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)。
如作者本人所述:
第一个解法:
@poeticninja commented 4 hours ago
在您的资产文件中创建路径 /js/script.js 而不是 js/script.js。这将解决您的问题。
其他'solution':
在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>
但是,使用首字母 '/' 会更好。
当使用路由时,例如 (http://localhost:port/foo/bar),在视图中,在我的例子中是一个 ejs,我是否需要在视图中声明完整路径以加载 css/js/images?
视频:https://github.com/poeticninja/hapi-ninja
hapi-ninja/server/base/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)。
如作者本人所述:
第一个解法:
@poeticninja commented 4 hours ago 在您的资产文件中创建路径 /js/script.js 而不是 js/script.js。这将解决您的问题。
其他'solution':
在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>
但是,使用首字母 '/' 会更好。