Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML/CSS/JS重定向到带有路径名的主页_Javascript_Html_Firebase_Redirect - Fatal编程技术网

Javascript HTML/CSS/JS重定向到带有路径名的主页

Javascript HTML/CSS/JS重定向到带有路径名的主页,javascript,html,firebase,redirect,Javascript,Html,Firebase,Redirect,我有一个代码编辑器(只使用HTML/CSS/JS),名为 我正在尝试添加一个新功能,有点像how 该功能是这样的:每当用户重定向到随机生成的代码加上域(like),并且下次用户访问页面时,重新加载该代码 我的设计如下: 当用户来到quarkedit.ga时,获取路径名。如果数据库中存在路径名(使用Firebase作为数据库),则显示代码,否则重定向回quarkedit.ga并生成新的随机代码并转到那里 当用户离开quarkedit.ga时,获取代码并将其以路径名作为密钥保存在数据库中 所以我试着

我有一个代码编辑器(只使用HTML/CSS/JS),名为

我正在尝试添加一个新功能,有点像how

该功能是这样的:每当用户重定向到随机生成的代码加上域(like),并且下次用户访问页面时,重新加载该代码

我的设计如下:

当用户来到quarkedit.ga时,获取路径名。如果数据库中存在路径名(使用Firebase作为数据库),则显示代码,否则重定向回quarkedit.ga并生成新的随机代码并转到那里

当用户离开quarkedit.ga时,获取代码并将其以路径名作为密钥保存在数据库中

所以我试着实现这个,但我遇到了一个问题。给我一个404,因为那里没有html文件

这就是我需要帮助的地方:我如何使该步骤起作用,比如使blahblah返回quarkedit.ga,但将blahblah保留在URL中,以便我仍然可以访问它


我只想在这里使用Html、css或js

基本上,您需要两件事:

  • 单入口点web应用程序配置
  • 从入口点开始的JavaScript路由
单入口点配置看起来很像我在另一个网站上发布的答案:

如果用户有一个有效的URL,它将被服务。其他所有内容都将以index.html结束。无论哪种方式,浏览器中的URL都不会更改

下一步取决于您的实际实施;你可以:

  • 在这些URL上生成物理文件,然后就全部设置好了。web服务器的内置路由应该足够了。可能不需要在数据库中存储URL
  • 将代码页的内容存储在不同的位置,然后可能需要基于数据库查找的自定义重定向。开始时,一个简单的
    窗口.location.replace(codeUrl)就足够了。从长远来看,您可能希望查看路由组件,例如,或
  • 将代码页的内容存储在数据库中,并在需要时将其加载到编辑器中。数据库查找总是必要的
当请求不存在的URL时,您可以使用该URL作为新空代码页的起点


正如Roko所建议的那样,避免创建和存储代码以及与之相关的URL。实际上,我建议要求用户通过单击按钮手动保存文件。如果不保存,则所有内容都是临时的,并且在浏览器窗口关闭时内容将消失。例如,online regex tester就是这样工作的。

我不会用空记录填充数据库,而是在用户开始实际键入代码时才生成自定义URL(查看历史API)。@RokoC.Buljan好主意!谢谢有什么方法可以像github.com上托管的简单html/css/js一样实现这一点吗?你是说github页面?这并不是你一开始就要求的。我不知道,但这样做可能会遇到很多限制。是的,github页面你需要将很多东西拼凑在一起,然后才能使用常规的web服务器。第一站,如何进行如上所示的重写:
Options +FollowSymLinks -MultiViews 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [NC,L,QSA]