javascript 404(未找到)返回首页

rkkpypqq  于 2022-12-21  发布在  Java
关注(0)|答案(5)|浏览(143)

我正在尝试创建一个简单的Io-web-chat。我最近想把html文件中的<script>分离到一个外部js文件中。

这是我非常简单的文件夹结构:

Chat
|-- index.html
|-- index.js
`-- server.js

html文件的相关部分:

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script src="index.js"></script>
</body>
</html>

index.js文件的相关部分:

$(function() {

  //Initialize variables
  var $messageArea = $('#messages');
  var $InputMessage = $('#InputMessage');
  var $InputName = $('#InputName');

  //Initialize Socket
  var socket = io();

  //Send server Your message
  socket.emit('chat message', $InputMessage.val());

});

server.js文件的相关部分:

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

我还尝试将我的文件放在www.example.com示例中的公共类型结构中socket.io:

Chat
|-- Public
|   |-- index.html
|   `-- index.js
`-- server.js

在这种情况下,我改变了:html中的src="/index.js"/public/index.html添加到server.js文件中,但没有成功。
这都是在本地主机上运行的。我哪里做错了?

ylamdve6

ylamdve61#

app.use("/assets", express.static('./assets/'));

简单地将静态文件扩展名替换为这个扩展名。在我的例子中,文件夹名是assets,其中我有cssjsimages文件夹。

8ulbf1ek

8ulbf1ek2#

在我的例子中,import { myFunc } from './config'给予了我错误。使用import { myFunc } from './config.js'解决了这个问题。

xv8emn3q

xv8emn3q3#

如评论中所述:你需要一种方法来发送你的静态文件到客户端,这可以通过一个反向代理来实现,比如Nginx,或者简单地使用express.static()
把你所有的“静态”(css,js,images)文件放在一个专用的文件夹里,不同于你放置“视图”(在你的例子中是html文件)的地方,我将它命名为static,完成后,在你的服务器代码中添加这一行:

app.use("/static", express.static('./static/'));

这将通过/static路由有效地服务于“static”文件夹中的每个文件。
因此,在客户端查询index.js文件将变为:

<script src="static/index.js"></script>
2hh7jdfx

2hh7jdfx4#

我也遇到过类似的问题,通过省略代码中的前导斜杠解决了这个问题。例如,用js/script.js替换/js/script.js

ej83mcc0

ej83mcc05#

在我的情况下,

src="../static/js/controller.js"

取而代之

src="/js/controller.js"

相关问题