为什么我的html文件找不到我的js文件?

问题描述 投票:0回答:1

我刚刚将我的网站部署到我的 AWS 托管的 Windows Server 2022 数据中心:http://www.planetshah.com/pwv ...由于某种原因,它在链接到 javascript 时遇到问题:

线路...

<script src="./logic.js"></script>

...抛出错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

我在本地开发时效果很好。

这是服务器上文件结构的屏幕截图:

index.html(主要 html 文件)加载正常,但位于同一目录中的logic.js(主要 javascript 文件)无法加载。

我的服务器使用 node.js 路由应用程序路由流量,该应用程序使用 bouncy:

bouncy(function(req, bounce) {
    const host = req.headers.host;
    console.log(`host=${host}`);
    if (host === 'planetshah.com' || host === 'www.planetshah.com') {
        if (req.url.includes('/music%20mixes/')) bounce(8002);
        else if (req.url.includes('/pwv')) bounce(8004);
        else bounce(8000);
    }
    if (host === 'assertivesolutions.ca' || host === 'www.assertivesolutions.ca') {
        console.log('bouncing to 8001');
        bounce(8001);
    }
    if (host === 'fmshahdesign.com' || host === 'www.fmshahdesign.com') {
        console.log('bouncing to 8003');
        bounce(8003);
    }
}).listen(80);

...

const pwvApp = express();
pwvApp
    .use(express.static(path.join(__dirname, 'planetshah.com\\pwv')))
    .listen(8004);
pwvApp.get('/*', function(req, res) {
    res.sendFile(path.join(__dirname, 'planetshah.com\\pwv\\index.html'), function(err) {
        if (err) {
            res.status(500).send(err);
        }
    });
});

console.log('pwvApp listening on port 8004');

如您所见,它会查看主机(来自

req.headers.host
)以查看它是否包含
planetshah.com/pwv
。如果是,则将请求退回到端口 8004。进一步,使用express 创建 pwvApp 应用程序并侦听端口 8004。

这似乎工作正常,因为我可以看到我的 pwv 应用程序的登录屏幕。但它无法加载 javascript。

我想知道是否必须像返回index.html 一样返回javascript 文件。也就是说,调用

res.sendFile(...)
。如果是这样,我是否必须对我的应用程序使用的每个文件执行此操作?如果是这样,一定有更好的办法。或者也许这不是问题。我有疑问,因为 css 文件似乎加载得很好。但问题是什么呢?

任何帮助将非常感激。

javascript html http-status-code-500 script-tag
1个回答
0
投票

删除 URL 字符串开头的 ./。

我不久前从事过一个类似的项目,当我们开始将文件放入文件夹中时,整个 CSS 和 js 链接都崩溃了,因为我们使用了软链接。

./ 表示转义当前文件夹 pwv 并进入planetshah.com 文件夹,并查找logic.js。

所以只需将其更改为普通旧的

"logic.js"
,它应该可以工作

© www.soinside.com 2019 - 2024. All rights reserved.