页面切换次数多了的时候,会出现hash跳转了但是view没渲染的情况
virola opened this issue · 24 comments
而且貌似是edp build之后才出现,build之前没有。
ps.
用的最新的tag;
build的时候有合并tpl
有js报错么?发svn地址或者git地址。发edp -v
的输出
·
edp -v
edp@1.0.1 C:\Users\virola\AppData\Roaming\npm\node_modules\edp
Builtin Commands:
edp-config (1.0.2)
edp-core (1.0.28)
edp-build (1.0.14)
edp-package (0.5.6)
edp-project (0.6.1)
edp-webserver (1.0.16)
User Commands:
edpx-add (1.0.3)
edpx-ws (0.0.2)
·
刚试了下,确认是tplMerge的问题,如果没有merge模板,就能切换正常
@leeight 是啊,所以没法给你发svn/git地址啊,不过你可以找个项目试下在edp-build-config里加一个
var tplMerge = new TplMerge({
outputType: 'js'
});
build看看效果
是切换次数多了,还是切换得很快导致的?
@virola 我不懂 ER 呀,要不你试试这个:http://ecomfe.github.io/saber/
@otakustay 不是切换很快, 是切换几次(也有点一两次),就开始渲染不了了,或者有的能点有的不能点。模板合并成1个的时候才这样
看一下生成的tpl,需要的target是不是都在
@jinzhubaofu target没有问题,页面都能render一次,就是之后再点进来就没有render;但也不是所有view都这样,有的会渲染有的不会渲染
打开all exceptions pause那个定位下吧…
我会争取明天写个简单的项目试试……
先确认下,TplMerge
和outputType
不是js
的时候是好的?
@otakustay 嗯,文档貌似有说pluginId和outputType一起用才起作用,所以这里写了outputType: js也没有影响最终tpl.html的输出
会不会是因为build-config处理器顺序问题?
我昨天把tplMerge写在 jsCompressor后面了,像这样:
var moduleEntries = 'html,htm,phtml,tpl,vm,js';
var pageEntries = 'html,htm,phtml,tpl,vm';
exports.getProcessors = function () {
var lessProcessor = new LessCompiler({
entryExtnames: pageEntries
});
var cssProcessor = new CssCompressor();
var moduleProcessor = new ModuleCompiler({
configFile: 'module.conf',
entryExtnames: moduleEntries
});
var jsProcessor = new JsCompressor();
var pathMapperProcessor = new PathMapper({
replacements: [
{ type: 'html', tag: 'link', attribute: 'href', extnames: pageEntries },
{ type: 'html', tag: 'img', attribute: 'src', extnames: pageEntries },
{ type: 'html', tag: 'audio', attribute: 'src', extnames: pageEntries },
{ type: 'html', tag: 'script', attribute: 'src', extnames: pageEntries },
{ extnames: 'html', replacer: 'module-config' },
{ extnames: 'less,css', replacer: 'css' }
],
from: 'src',
to: 'asset'
});
var addCopyright = new AddCopyright();
var tplMerge = new TplMerge({
outputType: 'js'
});
return {
'debug': [ lessProcessor, moduleProcessor, pathMapperProcessor ],
'default': [
lessProcessor, cssProcessor, moduleProcessor,
jsProcessor,
tplMerge,
pathMapperProcessor, addCopyright
]
};
};
刚刚试了下把 tplMerge
放到 moduleProcessor
前面,然后也把各个view里面require的tpl都提到入口文件里面,这样build出来是没问题的
只用outputType其实最后生成的还是.tpl.html,而不是一个.js,我们这边的项目都是合并模板为一个HTML的,一直没有问题
@virola 能不能确认下你们build后的模板到底是HTML还是js?
Best regards
Gray Zhang
在 2015年2月3日 下午1:53:04, Virola (notifications@github.com) 写到:
会不会是因为build-config处理器顺序问题?
我昨天把tplMerge写在 jsCompressor后面了,像这样:
var moduleEntries = 'html,htm,phtml,tpl,vm,js';
var pageEntries = 'html,htm,phtml,tpl,vm';
exports.getProcessors = function () {
var lessProcessor = new LessCompiler({
entryExtnames: pageEntries
});
var cssProcessor = new CssCompressor();
var moduleProcessor = new ModuleCompiler({
configFile: 'module.conf',
entryExtnames: moduleEntries
});
var jsProcessor = new JsCompressor();
var pathMapperProcessor = new PathMapper({
replacements: [
{ type: 'html', tag: 'link', attribute: 'href', extnames: pageEntries },
{ type: 'html', tag: 'img', attribute: 'src', extnames: pageEntries },
{ type: 'html', tag: 'audio', attribute: 'src', extnames: pageEntries },
{ type: 'html', tag: 'script', attribute: 'src', extnames: pageEntries },
{ extnames: 'html', replacer: 'module-config' },
{ extnames: 'less,css', replacer: 'css' }
],
from: 'src',
to: 'asset'
});
var addCopyright = new AddCopyright();
var tplMerge = new TplMerge({
outputType: 'js'
});
return {
'debug': [ lessProcessor, moduleProcessor, pathMapperProcessor ],
'default': [
lessProcessor, cssProcessor, moduleProcessor,
jsProcessor,
tplMerge,
pathMapperProcessor, addCopyright
]
};
};
刚刚试了下把 tplMerge 放到 moduleProcessor 前面,然后也把各个view里面require的tpl都提到入口文件里面,这样build出来是没问题的
—
Reply to this email directly or view it on GitHub.
@otakustay 恩,是的,我们也是build之后用.tpl.html,模板用的etpl,没用esui
这事没有试出来……因为我们的项目就是build为一个文件的,但始终没出现这情况
你是否能给我可运行的源码之类的来辅助下问题排查……我比较怀疑是某个Action的dispose出了问题之类的
@otakustay https://github.com/virola/demo-project 这个,build之后,点击首页随便那个button,再点logo回首页,再点其他button就会出现这种情况了
顺便给下对应的Issue:ecomfe/esl#35
在这之前我们一直用的esl是1.x
版本正好就没事,上周转到2.0.2
发现的这问题及时给搞了
soga! 没想到最后是因为esl的bug... = = 切换2.0.4现在可以了~