我即将开始为朋友创建一个音乐项目网站。现在它应该很简单:没有动态内容(游览日期等),只不过是一些嵌入式样本歌曲或SoundCloud链接。我不希望在响应式网格上使用除香草JavaScript和Bootstrap或Foundation之外的任何东西。
够了吗?我可以简单地将HTML,CSS和JS文件上传到主机并完成操作,还是应该花时间在Node或PHP中对后端服务器进行编程?
我即将开始为朋友创建一个音乐项目网站。现在它应该很简单:没有动态内容(游览日期等),只不过是一些嵌入式样本歌曲或SoundCloud链接。我不希望在响应式网格上使用除香草JavaScript和Bootstrap或Foundation之外的任何东西。
够了吗?我可以简单地将HTML,CSS和JS文件上传到主机并完成操作,还是应该花时间在Node或PHP中对后端服务器进行编程?
Answers:
*注意:当您要内部控制对内容,数据或功能的访问时,服务器端代码对于安全性至关重要。(不一定是您的服务器,请参阅最后一段。)
问问自己,使用服务器端技术会解决什么问题。如果您什么也想不到(就您而言,我也不能),那么您就不需要它们。
请注意,仅使用客户端代码可能会超出您的想象。像AngularJS或ReactJS这样的JavaScript框架可以让您通过使用Ajax的API与第三方动态内容集成。(这包括连接到可以处理其自身安全性的API。)
Server-side code is essential for security
很多开发者没有对安全性提出质疑。直到你把他们的脸扔进他们的烂摊子。我的电话是,如果您需要身份验证,则需要后台。如果需要存储数据,则需要一个后台办公室,在此之前,客户端会再次检查数据。
了解有关静态站点生成器的信息。这些允许您以编程方式(使用模板,数据等)创建网站,而不是手工制作HTML。结果是一组不需要任何后端的静态HTML和CSS。
https://www.staticgen.com/列出并列出了许多此类开源生成器;封闭源产品也可能存在。
Can I simply upload HTML, CSS, and JS files to a host and be done with it, or should I take the time to program a backend server in Node or PHP?
确实需要指出,在OP的情况下,有一个第三选项相当吸引人,选项恕我直言:)
如果可以,您可以并且应该仅使用静态站点,或者使用静态站点生成器。为什么?可维护性。代码有错误。每隔几周就会发现另一个WordPress安全漏洞。如果使用通用CMS,则必须不断对其进行修补。否则,您的朋友网站上将很快包含有关非法药物,ISIS宣传,安装在访问者计算机上的恶意软件的广告,甚至更糟。即使您定期对其进行修补,也可能为时已晚,因此您必须不断检查是否存在黑客入侵。有一些方法可以保护此CMS。安装“安全插件”,配置Web应用程序防火墙,例如mod_security等。所有这些工作都需要做更多。它们也必须保持更新。有时,您的mod_security规则会破坏WordPress的插件,因此您必须分析并修复它。更多的工作。
您可能会认为,没有人会想要破解该网站。但是,由于常见CMS系统中存在常见的安全漏洞,很快就会有自动漫游器爬网/搜索网络并使用该CMS入侵所有网站。他们只想传播自己的链接/恶意软件/宣传。
使用静态网站(手动创建或使用生成器),您就不会遇到此问题。
如果您实现自己的后端,那么它也会有安全漏洞(没有人是完美的),但很可能没人会在那个小网站上利用它们。但是您要实现什么?如果您想创建一个可以让您的朋友自己更改巡回日期的编辑器,请考虑一下这将花费您多长时间,直到他在没有您帮助的情况下可以轻松使用为止。您可以用该时间预算为他快速更改几次日期?
我认为,如今有太多人只为每个站点使用CMS系统,因为静态HTML是“旧的”。如果您不需要HTML5所无法提供的任何功能,请使用服务器端代码。但是,如果您不需要它,那么无需它可以节省很多时间。
您只需要在需要时进行后端编程。
但是,即使像电子邮件表格这样的基本功能也通常需要基本的后端编程。如果只是显示站点,那么可以。
不一定,但是如果使用纯HTML制作整个网站,则可能会遇到一些问题。
许多站点在多个页面上具有相同的菜单,页眉和页脚元素。如果仅将这些内容从一个页面复制并粘贴到另一页面,则随着站点的扩大,这可能变得乏味且容易出错,并且您需要在这些区域中进行更改。
在服务器端编程如此普遍的日子里,解决此问题的一种常用方法是使用框架将这些区域嵌入到每个页面中。几年前,这种方法失宠了,所以我不建议现在这样做。您可以编写一些简单的服务器端代码,而不是在每个页面上显示这些公共元素。
我同意这里的其他人的建议,他们建议使用现成的CMS。