问题标签 [vue-ssr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vue.js - 使用 Vue SSR 渲染页面时的动态 publicPath
我们是 Vue 及其服务器端渲染模块 Vue SSR 的快乐用户。我的项目的需求之一是我们能够在运行时动态调整 Webpack 的 publicPath,这样我们就可以从我们不同的 CDN 中获取资产(我们有两个,一个用于测试,一个用于生产)。
__webpack_public_path__
我们可以使用自由变量在客户端轻松完成此操作,您还可以覆盖SSR 客户端清单中的 publicPath 以将资产 URL 注入<head>
.
然而,我们仍然存在直接位于我们的模板中并由 SSR 呈现的资产 URL 的问题。例如,假设我们的标签中有以下图像:
我们的目标是,在服务器和客户端上,我们都可以通过 publicPath 调整该 URL 以添加我们喜欢的前缀。似乎没有一种方法可以vue-ssr-server-manifest.json
在生成 publicPath 后动态更新它,最终的 URL 最终会是相对的,/static/test.png
或者我们最初在 Webpack 配置中引用的任何东西。
根据我们的项目限制,不可能重建我们的 SSR 包,因此我们需要在运行时执行此操作。我们尝试添加占位符值作为我们的 publicPath,例如__CUSTOM_WEBPACK_PUBLIC_PATH__
,并在运行时在服务器包中替换它们,但这最终无效,因为 publicPath 也嵌入在其他 Webpack 生成的文件中。
想知道是否有一种更简洁的方法可以直接通过 Vue SSR 实现我们所需要的,或者这是我们无法在运行时配置的东西。谢谢阅读!
vuex - 如何使用 vue SSR 访问路由守卫内的商店?
我在一个新项目中使用 Vue + SSR,我正在尝试实现一个路由保护来强制对某些路由进行身份验证。我想做这样的事情:
但是,我不能import
像在普通应用程序中那样简单地存储商店,因为根据官方文档,我正在为函数内部的每个请求创建一个新实例。
有没有办法将商店传递给路线守卫?或者我是从完全错误的角度来的?任何帮助是极大的赞赏!
node.js - 错误:组件中未定义渲染函数或模板:匿名
尝试来自https://ssr.vuejs.org/guide/#using-a-page-template的指南中的示例,但教程中必须缺少一些内容。
当我打开我的页面时,我收到错误:
错误:组件中未定义渲染函数或模板:匿名
在 normalizeRender
laravel - Laravel + Vue ssr。预取数据
我正在尝试使用服务器端渲染制作应用程序 lavevel + vue。我找到了这本手册,它工作得很好。有一个小问题。我需要在页面加载之前获取数据以解决 SEO 问题,并且我找到了用于预取的官方 vue ssr 手册。但它不起作用。我只在控制台中看到错误
entry-client.js:6952 [Vue warn]: Cannot find element: #app
。
我的entry-server.js
有什么想法如何解决这个问题?
看起来Promise
不起作用
Laravel 5.7 和 Vue 2.6.6
vue.js - Vue Cli 3 Build没有缩小css
我一直在研究 Vue 并让它与我需要的东西一起工作。
- 打字稿
- 固态继电器
我的示例项目可以在https://github.com/Alik2015/VueDemo找到。跑步
查看页面源代码并查看 css 没有被缩小。
在构建这个项目时,我观察到以下几点:
1)我的css在页面的head部分并且没有被提取(在某处读到这是默认行为,但不是100%确定)
2) 我的评论仍然存在于 css 中,例如 /*comment*/
3)我的 html 失去了所有的间距
我确实尝试在 vue.config.js 中设置 css:{extract:true} 和各种其他选项,但它们只是将其留空,因为没有任何效果。
感谢有人能指出我正确的方向。
我不是前端开发人员,所以可能错过了一些简单的事情。
node.js - Vue ssr route.params 正在从另一个请求中获取
我将 Akryum/vue-cli-plugin-ssr 与 vue-cli 一起使用。在我的 vue ssr 应用程序上有一个奇怪的行为。路由参数是从另一个请求中获取的,该请求在该请求之前或可能与此并行。
例如,如果我打开两个具有不同路由参数的页面并快速刷新它们,则可以从第二页获取第一页路由参数,反之亦然。
谢谢您的帮助。
vuex - 带有 vuex-persist 的 Nuxt.js - 页面刷新时在 asyncData 中不可用的持久状态
在第一页刷新时,asyncData 函数无法获取持久状态。当我关注另一个 NuxtLink 并返回此页面时,同时状态没有发生变化,数据就在那里。这意味着持久状态在第一次加载/刷新时在服务器端不可用。LocalStorage 是我选择保存相关状态项的地方。
使用 asyncData 的页面组件:
store/index.js 很简单。不幸的是,在第一页刷新时,asyncData 中的状态完全为空。
按照 Github 自述文件中的建议,使用模式“客户端”正确导入 vuex-persist.js
如何确保在调用 asyncData之前保留本地存储中的相关存储条款?
vue.js - SSR 版本为使用 Vue cli3 库的 Vuejs cli3 SPA 应用程序说“未定义文档”
我有一个使用 Vue CLI v3 创建的相当复杂的 SPA Vue.js 应用程序。我想改造这个应用程序以从 SSR 中受益(尽管我最终可能只使用预渲染......)
我的应用程序也在使用使用 CLI v3 创建的自定义 Vuejs 库。这些库嵌入了 CSS,我想继续这样做。
我可能已经阅读了世界上在 Vue cli、vue-loader、vue-style-loader、vue.config.js、extract css 等上产生的所有内容,但我一直失败。
这是我加载给定路线时正在运行的应用程序的错误消息:
commonjs
单击错误的第一行时,我从我的 lib 文件中获得以下代码:
我不知道我是否需要更改我的库(我认为是这样)或我的应用程序中的内容,或两者兼而有之。
这是vue.config.js
我的库:
但我也尝试过extract: true
和(很多)更复杂的东西......我总是遇到同样的错误。
有没有办法将 Vue cli 3 lib 与 CSS 集成到 SSR Vue 应用程序中???非常感谢。
javascript - 为什么我在使用 vue cli 和 ssr 的 nodejs 上出现意外的令牌导出错误?
我刚刚使用 vue/cli v3.10.0 创建了一个 vue 项目
我像vue-cli-ssr-example示例一样添加ssr
到项目中。
但是在我构建并运行服务器端(nodejs)之后,我尝试浏览到http://localhost:8080
:
但出现以下错误:
任何想法如何解决它?
重现步骤
这是我的 Github 存储库代码,这就是我创建存储库的方式:
我编辑并添加文件:vue.config.js tsconfig.json server.js babel.config.js entry-client.ts entry-server.ts main.ts index.template.html
以生产模式运行项目(不是开发服务器):
npm run build:prod && node server.js
任何帮助,将不胜感激。