Express 阻止访问公共网页包包?快车

Express 阻止访问公共网页包包?快车,express,webpack,Express,Webpack,在我的网页配置中,我将publicPath设置为: publicPath: '/js' 这样它就指向了public/js。另外,在我的index.pug文件中,该文件由服务器加载,而不是在public文件夹中,我有以下内容: extends layout block content main#app script(src="/js/bundle.js") 不幸的是,这使访问我的站点的人能够访问example.com/js/bundle.js。有什么方法可以防止这种情况发生吗?如果/

在我的网页配置中,我将publicPath设置为:

publicPath: '/js'
这样它就指向了
public/js
。另外,在我的
index.pug
文件中,该文件由服务器加载,而不是在
public
文件夹中,我有以下内容:

extends layout

block content
  main#app
  script(src="/js/bundle.js")

不幸的是,这使访问我的站点的人能够访问
example.com/js/bundle.js
。有什么方法可以防止这种情况发生吗?

如果
/js/bundle.js
是您在网页中使用的脚本文件,则无法阻止浏览器直接转到
http://example.com/js/bundle.js
。这正是浏览器用来从网页加载脚本的URL,因此URL必须工作

在您的网页中运行的所有Javascript都是公开的。你不能改变这一点。这就是web和浏览器的体系结构

不幸的是,这使访问我的站点的人能够访问example.com/js/bundle.js。有没有办法防止这种情况


不,你不能阻止它。

谢谢。有没有推荐的方法可以在不硬编码的情况下混淆捆绑包文件名?例如,
example.com/js/e2e3bbiefqic bundle.js
@MattHough-我不知道你说的“没有硬编码”是什么意思。我的意思是,我不需要自己命名文件
e2e3bbiefqic bundle.js
,也不提供使用它的所有其他东西的参考。是否有一种方法可以将所有内容都引用到一个模糊的bundle.js文件名。也许有一种经常自动改变它的方法会很好。我正在寻找一个可以这样做的模块,但找不到任何模块。@MattHough-真的没有理由这么做。任何想要下载的人都可以查看页面,查看脚本文件的当前名称,然后下载它。找到一种自动更改名称的方法是不值得的。任何想看的人都能看到。如果你觉得JS本身对你有帮助的话,有一些工具可以模糊JS本身,但真正做的只是让一个坚定的黑客放慢一点速度,因为他们仍然可以访问代码,甚至可以通过一些模糊的工具运行代码。@MattHough-客户端Javascript是可以公开查看的事实。如果您想保护某些算法或类似的东西,请将该代码放在服务器上,并使用ajax调用来调用它。这是保护代码不被查看的唯一方法。