我尝试使用Zurb Foundation for Apps创建SilverStripe主题,但我无法使用Foundation的模板加载来处理目录结构。
通常基金会的结构如下:
我想做的是:
基本上:
a)Foundation位于子目录中,但仍然使用根URL(例如http://example.com/)进行访问,因为SilverStripe从其控制器加载模板。
b)编译的文件只是在Foundation的兄弟目录中,而不是孩子。
这主要是通过在gulpfile.js中指定输出目录来实现的,例如.pipe(gulp.dest('../'+outputTheme))
。
问题是通过AJAX加载页面模板。 Front-router编译路由列表及其模板文件的路径,但它使它们相对(templates / mypage.html)它尝试获取example.com/templates/mypage.html
而不是example.com/themes/livetheme/templates/mypage.html
。
SO
a)有没有办法在客户端JavaScript中指定一个根或其他内容添加到foundationRoutes中的路径?
b)失败是否有办法让前端路由器写入routes.js的完整路径?我已尝试将root和dir的各种值传递给它但它得到了通过节点的path.relative()
,它永远不会给我们预期的结果。
例如在gulpfile.js中有这个
gulp.task('copy:templates', function() { return gulp.src('./templates/**/*.*') .pipe(router({ path: '../livetheme/javascript/routes.js', root: '/templates/', dir: 'themes/livetheme' })) .pipe(gulp.dest('../livetheme/templates')) ; });
导致此routes.js文件:
var foundationRoutes = [{"name":"home","url":"/","path":"../../../templates/Layout/home.html"}];
当我真的希望路径为" themes / livetheme / templates / Layout / home.html"
对不起,这有点乱,我不确定哪些信息与问题有关。