好吧,我有一个名为https://quarkedit.ga的代码编辑器(仅使用HTML / CSS / JS )
我正在尝试添加新功能,有点像https://scratchpad.io的功能。
功能如下:每当用户来https://quarkedit.ga重定向到随机生成的代码加上域(如https://quarkedit.ga/green-panda-2066)时,下次用户访问该页面时重新加载该代码。
我的设计如下:
当用户访问quarkedit.ga时,获取路径名。如果数据库中存在路径名(使用Firebase for database),则显示代码,否则重定向回quarkedit.ga并生成新的随机代码并转到那里。
当用户离开quarkedit.ga时,获取代码并将其保存在数据库中,并将路径名作为密钥。
所以我试图实现这个,我遇到了一个问题。 https://quarkedit.ga/blahblah给了我404,因为那里没有html文件。
所以这就是我需要帮助的地方:我如何让这一步工作,比如让blahblah回到quarkedit.ga,但在网址中保留blahblah,这样我仍然可以访问它?
如果我没有正确解释,或者需要更多解释,或者如果这个问题不合适,请在下面发表评论。
请不要只是投票然后去,当我被投票时我真的很沮丧,我甚至不知道为什么。
我想在此只使用 Html,css或js 。
此外,出于某种原因,这并没有得到太多关注,赏金会有所帮助;)
谢谢!
答案 0 :(得分:1)
基本上,你需要两件事:
单个入口点配置看起来很像我在另一个QA上发布的答案:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [NC,L,QSA]
如果用户拥有有效的网址,则会提供该网址。其他所有内容都将以index.html结束。无论哪种方式,浏览器中的URL都不会改变。
下一步取决于您的实际实施;你可以:
window.location.replace(codeUrl);
就足够了。从长远来看,您可能需要查看路由组件,例如router.js,navigo或Crossroads.js。当请求不存在的URL时,您可以使用该URL作为新空代码页的起点。
正如Roko所建议的那样,尽早避免创建和存储代码及相关的URL。实际上,我建议要求用户通过单击按钮手动保存文件。如果没有保存,一切都是临时的,当浏览器窗口关闭时内容就会消失。例如,this在线正则表达式测试工具就是这样。