投放HTML文件的Node.js找不到引用的文件

时间:2018-09-12 17:36:33

标签: javascript html node.js

我正在尝试使用Node.js和HTML制作一个简单的游戏。我希望能够在本地运行游戏(因此是localhost)。但是,当我启动Node服务器时,仅呈现HTML内容-我的图像没有显示并且JS未加载。我在HTML代码中引用了JavaScript文件,CSS文件和图像。不确定为什么服务器无法从HTML内引用它们。

这是我的服务器代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text=""
        android:gravity="center"
        android:id="@+id/DisplaySunrise"/>
</FrameLayout>

谁能告诉我如何加载图像/ JS? TIA

3 个答案:

答案 0 :(得分:0)

您需要静态处理程序以返回静态内容。检查一下 https://www.pabbly.com/tutorials/node-js-http-module-serving-static-files-html-css-images/

此外,如果您的应用程序非常庞大,请使用Express等中间件。 (https://expressjs.com/

答案 1 :(得分:0)

您没有正确提供静态内容(即图片,CSS)。考虑一下当一个人导航到http://localhost:3000/some_image.png时会发生什么-将向他们提供game.html!

例如,您需要考虑使用requestHandler读取他们想要的文件的用户,从而在fs.readFileSync(request.url)中请求该内容。请记住要检查它们是否只能请求您希望它们能够读取的文件!

答案 2 :(得分:0)

如果您使用Express框架,则可以使用静态渲染:

app.use(express.static('public'));

其中“ public”是文件夹名称