生成的html调用app.js中getPageName()函数出错的问题

来源:9-8 文章详情ftl生成静态化页面【页面静态化】

儒雅随和4342680

2021-03-14

老师,你好
我在生成的页面中去留言时,发现获取文章Id失败
F12发现错误为
vue.min.js:6 TypeError: app.getPageName is not a function

app.js中的函数定义

getPageName() {
        var thisPath = window.location.pathname;
        var pathArray = thisPath.split("/");
        var pageNameSuffix = pathArray[pathArray.length - 1];
        var thisPage = pageNameSuffix.split(".")[0];
        // console.log(thisPage);
        return thisPage;
},

调用的地方为

// 根据当前页面的名称,定义为文章的articleId,作为我们的静态化页面名称
// 比如 1001.html, 200221.html
var thisPage = app.getPageName();
console.log(thisPage);
var articleId = thisPage;
this.articleId = articleId;

apps.js应该是引入成功的,因为点击作家中心可以正常跳转,这里调用的url就是在apps中获取的

goWriterCenter() {
 window.open(app.writerIndexUrl);
},

此外,在vscode中,进入下面的引用,也是正确跳转到app.js中。

 <script src="../js/app.js"></script>

请问一下,这是什么原因造成的啊

写回答

3回答

风间影月

2021-03-14

应该是路径问题了,在ftl中的路径设置不对,导致生成的也不对了,先在生成的html里改一下,然后修改ftl就行,之前一个同学和你一模一样的问题

0
3
Bluse666
老师,我的问题跟这位老哥的问题一样,ftl中的js路径是,生成的静态页面中的js路径是, app.js里面明明有getPageName, getPageName() { var thisPath = window.location.pathname; var pathArray = thisPath.split("/"); var pageNameSuffix = pathArray[pathArray.length - 1]; var thisPage = pageNameSuffix.split(".")[0]; // console.log(thisPage); return thisPage; }, 但是还是提示没有这个函数呢?detail.ftl直接复制课程里的
2021-03-28
共3条回复

weixin_慕九州7370361

2021-03-24

aaa

0
0

qq_夏不安_0

2021-03-24

我也是遇到问题,在ide中能跳转,改的哪里的路径?

0
4
maxchen_
回复
qq_夏不安_0
牛逼 确实是这个问题~~~~!!!!!! 后续小伙伴看这个就行了,基础版app.js里少了getPageName方法
2022-03-12
共4条回复

Spring Cloud 进阶 Alibaba 微服务体系自媒体实战

一课收获分布式系统开发,微服务核心技术和中间件企业生产落地

1113 学习 · 896 问题

查看课程