3

在开发中,我可以直接链接到任何路线。在 Zeit/now,我可以引导链接到某些页面,但不能链接到其他页面。我正在努力确定问题所在。

这是一个示例,直接导航到“ https://partyshoegame.now.sh/games/play/Sparkle ”不起作用,但从主页导航到同一个地方确实有效。

Zeit 运行时日志没有任何条目。

也许是我拥有 Firebase 内容的页面?我通过 RXJS/RXfire 使用 firebase 身份验证,并通过谷歌的 API 使用 firestore。

我断言我尝试过的事情:

链接深度:我的内容有两层深。我把一些拉到只有一层深,但这并没有什么不同。

Slugs:我有博客样本和我的内容。博客有效,我的无效。

我的 Helper js 代码:我在 routes 文件夹中有几个没有下划线名称的 js 文件。我想,也许那些是造成路线问题的原因。我加了下划线,没有区别。

蛞蝓#2:我放置了一个命名文件两层深。无法直接访问没有索引?:我的一些路线只有 [slug].svelte。我添加了 index.svelte。没有不同。

Slugs #3:我的文件被命名为 [playDocId].svelte,然后我使用了 params.playDocId。我把它们换成了[slug]。没有不同

应用服务器:将 polka 换成 express。没有不同

我的路线文件夹的片段

routes
 > blog
  > games
   > play
    [playDocId].svelte
   > edit
     [editDocId]-svelte

我的路线文件夹的屏幕截图

服务器响应

` 在 dev 中,我可以直接链接到任何路由。在 Zeit/now,我可以引导链接到某些页面,但不能链接到其他页面。我正在努力确定问题所在。

这是一个示例,直接导航到“ https://partyshoegame.now.sh/games/play/Sparkle ”不起作用,但从主页导航到同一个地方确实有效。

Zeit 运行时日志没有任何条目。

也许是我拥有 Firebase 内容的页面?我通过 RXJS/RXfire 使用 firebase 身份验证,并通过谷歌的 API 使用 firestore。

我断言我尝试过的事情:

链接深度:我的内容有两层深。我把一些拉到只有一层深,但这并没有什么不同。

Slugs:我有博客样本和我的内容。博客有效,我的无效。

我的 Helper js 代码:我在 routes 文件夹中有几个没有下划线名称的 js 文件。我想,也许那些是造成路线问题的原因。我加了下划线,没有区别。

蛞蝓#2:我放置了一个命名文件两层深。无法直接访问没有索引?:我的一些路线只有 [slug].svelte。我添加了 index.svelte。没有不同。

Slugs #3:我的文件被命名为 [playDocId].svelte,然后我使用了 params.playDocId。我把它们换成了[slug]。没有不同

应用服务器:将 polka 换成 express。没有不同

我的路线文件夹的片段

routes
 > blog
  > games
   > play
    [playDocId].svelte
   > edit
     [editDocId]-svelte

我的路线文件夹的屏幕截图

服务器响应

` 找不到页面。

The page could not be found in the application.

404: NOT_FOUND
>Code: RESOURCE_NOT_FOUND
ID: cle1:mb46h-1573325573258-8bd73af71130

`

错误页面截图


包.json

{ "name": "partyshoegame", "description": "Party Shoe Game", "version": "0.0.1", "license": "UNLICENSED", "scripts": { "dev": "sapper dev", "build": "sapper build --legacy", "export": "sapper export --legacy", "zeit": "sapper export --legacy && now --prod && sapper dev", "start": "node __sapper__/build", "cy:run": "cypress run", "cy:open": "cypress open", "test": "run-p --race dev cy:run" }, "dependencies": { "@firebase/app": "^0.4.19", "body-parser": "^1.19.0", "bulma": "^0.8.0", "bulma-extensions": "^6.2.7", "compression": "^1.7.1", "date-fns": "^2.5.1", "date-fns-tz": "^1.0.8", "express": "^4.17.1", "firebase": "^7.2.0", "firebaseui": "^4.2.0", "helmet": "^3.21.2", "lazysizes": "^5.1.2", "polka": "^1.0.0-next.7", "rxfire": "^3.8.7", "rxjs": "^6.5.3", "sirv": "^0.4.0", "uuid": "^3.3.3", "uuid-random": "^1.3.0", "xmlhttprequest": "^1.8.0" }, "devDependencies": { "@babel/core": "^7.0.0", "@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/runtime": "^7.0.0", "npm-run-all": "^4.1.5", "rollup": "^1.12.0", "rollup-plugin-babel": "^4.0.2", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-replace": "^2.0.0", "rollup-plugin-svelte": "^5.0.1", "rollup-plugin-terser": "^4.0.4", "sapper": "^0.27.0", "svelte": "^3.0.0" }, "main": "main.js", "repository": "https://github.com/ketupia/psg-firebase", "author": "Ketupia <ketupia@gmail.com>", "private": true }

构建过程

  1. npm 运行导出
  2. 提交到 github
  3. zeit/now 自动拉

    或者

“npm run zeit”,它是 sapper 导出并推送到现在。

2 : https://i.stack.imgur.com/0tRuu.png找不到页面。

在应用程序中找不到该页面。

404:未找到

代码:RESOURCE_NOT_FOUND ID:cle1:mb46h-1573325573258-8bd73af71130 `

错误页面截图


包.json

{ "name": "partyshoegame", "description": "Party Shoe Game", "version": "0.0.1", "license": "UNLICENSED", "scripts": { "dev": "sapper dev", "build": "sapper build --legacy", "export": "sapper export --legacy", "zeit": "sapper export --legacy && now --prod && sapper dev", "start": "node __sapper__/build", "cy:run": "cypress run", "cy:open": "cypress open", "test": "run-p --race dev cy:run" }, "dependencies": { "@firebase/app": "^0.4.19", "body-parser": "^1.19.0", "bulma": "^0.8.0", "bulma-extensions": "^6.2.7", "compression": "^1.7.1", "date-fns": "^2.5.1", "date-fns-tz": "^1.0.8", "express": "^4.17.1", "firebase": "^7.2.0", "firebaseui": "^4.2.0", "helmet": "^3.21.2", "lazysizes": "^5.1.2", "polka": "^1.0.0-next.7", "rxfire": "^3.8.7", "rxjs": "^6.5.3", "sirv": "^0.4.0", "uuid": "^3.3.3", "uuid-random": "^1.3.0", "xmlhttprequest": "^1.8.0" }, "devDependencies": { "@babel/core": "^7.0.0", "@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/runtime": "^7.0.0", "npm-run-all": "^4.1.5", "rollup": "^1.12.0", "rollup-plugin-babel": "^4.0.2", "rollup-plugin-commonjs": "^10.0.0", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-replace": "^2.0.0", "rollup-plugin-svelte": "^5.0.1", "rollup-plugin-terser": "^4.0.4", "sapper": "^0.27.0", "svelte": "^3.0.0" }, "main": "main.js", "repository": "https://github.com/ketupia/psg-firebase", "author": "Ketupia <ketupia@gmail.com>", "private": true }

构建过程

  1. npm 运行导出
  2. 提交到 github
  3. zeit/now 自动拉

    或者

“npm run zeit”,它是 sapper 导出并推送到现在。

4

3 回答 3

1

Netlify 面临这个问题。

问题的快速总结:

  • 转到www.example.com,然后单击/products将您带到www.example.com/products
  • 直接进入www.example.com/products会导致 404。

解决方案:

将所有 URL 重定向到index.html.

执行:

Zeit:添加一个 404 页面并将其重定向到您的index.html.

Netlify:将一个名为_redirects(无扩展名)的新文件添加到您的发布目录(在部署设置下找到)。
将此单行添加到_redirects/* /index.html 200

来自 Netlify 文档:

无论浏览器请求什么 URL,这将有效地为 index.html 提供服务,而不是给出 404

于 2021-08-30T10:43:17.617 回答
0

我已将托管从 Zeit/now 切换到 Heroku。此功能在 Heroku 上完美运行。

于 2019-11-12T22:25:15.003 回答
0

您需要使用特殊的构建器来实现这一点:

https://github.com/thgh/vercel-sapper

于 2020-09-22T01:03:29.680 回答