首页 > 解决方案 > Phantomjs“模块 X 不可用!” 尝试渲染 AngularJS 网页时

问题描述

我花了几个小时试图找到一个问题,它给了我任何线索来解决我的问题,但找不到任何相关的东西。

我正在为一个网站做一些 SEO(我不是 SEO 专家,目前正在学习一些课程并阅读很多关于它的文章),我发现的一件事是在谷歌搜索上作为谷歌的“获取和渲染”安慰。

但是,该网站具有大量 AngularJS (1.5.x) 组件,只是呈现了标题,我暗示这意味着 js 没有正确加载并且 Angular 组件无法初始化。

因为,我后来发现(无法确认)Google Search Console 使用 PhantomJS 来呈现页面,所以我决定在我的本地环境中尝试一下。

我们使用 Webpack 将所有 js 文件捆绑在一起,它在本地和生产环境中都可以正常工作,但是 PhantomJS 在尝试渲染捆绑的文件时似乎存在一些问题。

页面尝试引导的每个模块在运行 PhantomJS 时都会引发错误:

[$injector:nomod] 模块 '(moduleName)' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

但正如我所说,所有浏览器都正确加载了所有模块,显然模块声明没有错误,所有导入都按顺序进行,一切都应该按预期工作。除非它没有。

如果您认为脚本的摘录可以为此事带来一些启示,我会在需要时包括在内,因为代码有点敏感,有很多(想不出可能有帮助的一点) ,并且由于它几乎在任何地方都能正常工作,因此在我看来这不是问题,但我肯定是错的。

对不起,我讨厌发布没有代码的问题,但我对此有点不知所措。

有没有人遇到过类似的问题?

任何帮助将非常感激。

亲切的问候。

标签: javascriptangularjswebpackphantomjs

解决方案


推荐阅读