Nuxt/Vue - 它生成的 html 和 js 文件

领域

我刚开始使用 Nuxt 进行服务器端渲染。这似乎是一个很棒的框架。但我不喜欢它,因为它会生成很多丑陋的 html 标记、js 链接,而且 css 基本上是直接转储到 html 中的。此外,您会看到很多data-s。似乎您根本无法控制它们(这让我很担心!)。例如:

<!DOCTYPE html>
<html data-n-head-ssr data-n-head="">
  <head>
    <meta data-n-head="true" charset="utf-8"/><meta data-n-head="true" name="viewport" content="width=device-width, initial-scale=1"/><meta data-n-head="true" data-hid="description" name="description" content="Nuxt.js project"/><title data-n-head="true">Users</title><link data-n-head="true" rel="icon" type="image/x-icon" href="/favicon.ico"/><link rel="preload" href="/_nuxt/manifest.1dd9a3883f67d40b9aa7.js" as="script"><link rel="preload" href="/_nuxt/common.992cf40ea79f7d7937d8.js" as="script"><link rel="preload" href="/_nuxt/app.2d1407798eb328e5c249.js" as="script"><link rel="preload" href="/_nuxt/layouts/default.1360f17fdf8a6083917d.js" as="script"><link rel="preload" href="/_nuxt/pages/users.a5ea843f780a24b7dfd7.js" as="script"><link rel="prefetch" href="/_nuxt/pages/index.3c2e71cd997494896cb8.js"><link rel="prefetch" href="/_nuxt/pages/users-name.353da70d66b2cb18c1c9.js"><link rel="prefetch" href="/_nuxt/pages/about.7e9c73cd5e6253d976d6.js"><link rel="prefetch" href="/_nuxt/layouts/dark.9d852c7e76764cd94b7c.js"><link rel="prefetch" href="/_nuxt/pages/tasks.67c8259c9b53f68ea9a3.js"><style data-vue-ssr-id="5e853cdc:0">body,html{background-color:#fff;color:#000;letter-spacing:.5px;font-family:Source Sans Pro,Arial,sans-serif;height:100vh;margin:0}footer{padding:20px;text-align:center;border-top:1px solid #ddd}a,a:focus,a:hover,a:visited{color:#000}.logo{width:100%;height:auto;max-width:400px;max-height:289px}.layout-enter-active,.layout-leave-to{-webkit-transition:opacity .5s;transition:opacity .5s}.layout-enter,.layout-leave-to{opacity:0}</style><style data-vue-ssr-id="c6f373dc:0">.progress[data-v-5b643829]{position:fixed;top:0;left:0;right:0;height:2px;width:0;-webkit-transition:width .2s,opacity .4s;transition:width .2s,opacity .4s;opacity:1;background-color:#efc14e;z-index:999999}</style><style data-vue-ssr-id="59c3f703:0">.title[data-v-2941d5fc]{margin:30px 0}.users[data-v-2941d5fc]{list-style:none;margin:0;padding:0}.user[data-v-2941d5fc]{margin:10px 0}</style>
  </head>
  <body data-n-head="">
    <div id="__nuxt" data-server-rendered="true"><div class="progress" style="width:0%;height:2px;background-color:black;opacity:0;" data-v-5b643829></div><section class="container" data-v-2941d5fc><img src="/_nuxt/img/logo.a04e995.png" alt="Nuxt.js Logo" class="logo" data-v-2941d5fc><h1 class="title" data-v-2941d5fc>
    USERS
  </h1><ul class="users" data-v-2941d5fc><li class="user" data-v-2941d5fc><a href="/users/jona" data-v-2941d5fc>
        jona
      </a></li><li class="user" data-v-2941d5fc><a href="/users/jon" data-v-2941d5fc>
        jon
      </a></li><li class="user" data-v-2941d5fc><a href="/users/jonas" data-v-2941d5fc>
        jonas
      </a></li></ul></section></div><script type="text/javascript">window.__NUXT__={"layout":"default","data":[{"users":[{"_id":"59a53db03a35535198135b15","id":null,"name":"jona"},{"_id":"59a53ded3a35535198135b17","id":null,"name":"jon"},{"_id":"59a574afd5bc922f3dbf8b68","id":null,"name":"jonas"}]}],"error":null,"serverRendered":true};</script><script src="/_nuxt/manifest.1dd9a3883f67d40b9aa7.js" defer></script><script src="/_nuxt/layouts/default.1360f17fdf8a6083917d.js" defer></script><script src="/_nuxt/pages/users.a5ea843f780a24b7dfd7.js" defer></script><script src="/_nuxt/common.992cf40ea79f7d7937d8.js" defer></script><script src="/_nuxt/app.2d1407798eb328e5c249.js" defer></script>
  </body>
</html>

这对我来说很丑陋:

<div id="__nuxt" data-server-rendered="true"><div class="progress" style="width:0%;height:2px;background-color:black;opacity:0;" data-v-5b643829></div><section class="container" data-v-2941d5fc>

为什么我需要id="__nuxt"

如何将所有 js 文件构建到一个文件中 - 不确定这是否可行?

我怎样才能不将整个 css 嵌入到 html 中?

这将如何影响 SEO?

快乐的

data-v-*属性

如果您使用scopedcss,它们来自 vue CSS 加载器

为什么我需要 id="__nuxt" ?

因为它将 Vue 应用程序挂载到 DOM 元素 <div id="__nuxt"></div>

如何将所有 js 文件构建到一个文件中 - 不确定这是否可行?

为什么要这么做?Nuxt 试图帮助您避免性能问题。这就是它分开的原因。

我怎样才能不将整个 css 嵌入到 html 中?

您可以在此处提取 css 查看文档但它会再次提取常见的内容,而不是所有 css。

这将如何影响 SEO?

不会。

——

您可以尝试根据需要扩展 webpack 配置(捆绑 js、提取 css 等)。查看文档

编辑:您也可以检查其他流行的框架,如NextGatsby他们都试图遵循最佳实践。服务器端渲染的输出并不意味着它是故意丑化(缩小)的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

链接html文件和js文件

来自分类Dev

尝试自动覆盖 JS 和 HTML 文件

来自分类Dev

生成xml注释的xml文件和/或html html文件

来自分类Dev

从外部 html 文件和 css 生成 pdf

来自分类Dev

html块的相关js文件和css文件

来自分类Dev

html块的相关js文件和css文件

来自分类Dev

PhpStorm:用PHP,HTML和JS编写ctp文件

来自分类Dev

如何获取图片的文件路径(HTML和JS)

来自分类Dev

使用HTML和JS通过URL访问XML文件

来自分类Dev

如何使用CSS,JS和图像调用HTML文件?

来自分类Dev

用tampermokey替换HTML JS和CSS文件

来自分类Dev

外部CSS和JS文件未包含在HTML中

来自分类Dev

在模板/文件夹中组合 css、html 和 js

来自分类Dev

从R生成带有引号'和“的HTML文件

来自分类Dev

Maven:如何更新html文件以使用新的缩小和串联的JS和CSS文件?

来自分类Dev

在另一个HTML文件和JS中包括一个HTML文件

来自分类Dev

在单个 HTML 文件中加载多个 HTML、CSS 和 JS 文件

来自分类Dev

如何使用通用js和特定于html的js为多个html文件配置Webpack?

来自分类Dev

JS文件以HTML加载(通过Markdown生成),但未执行

来自分类Dev

在Node.js中生成html的PDF文件

来自分类Dev

Sitecore和HTML文件

来自分类Dev

Sitecore和HTML文件

来自分类Dev

使用KaTeX和Node.js生成HTML

来自分类Dev

NodeJS Express — 提供生成的 index.html 公共文件而不保存它

来自分类Dev

从html中提取js和css文件的URL?(使用node.js)

来自分类Dev

将前端文件HTML,CSS和JS链接到后端node.js

来自分类Dev

通过node.js http服务器使js和其他文件可用于html

来自分类Dev

将 HTML、CSS 和 JS 编译成单个 JS 文件

来自分类Dev

Web浏览器对HTML文件和PHP生成的文件的缓存是否不同?

Related 相关文章

热门标签

归档