我遗漏了与在HTTP中提供静态文件相关的非常明显的事情。
我可以通过文档<script>
中的<head>
标记链接来自CDN的脚本文件。但是我无法链接我自己的javascript文件,这些文件位于我的HTTP服务器根目录的/components
文件夹中,由koa.js运行。我知道这一点,通过检查浏览器检查器资源,有CDN传送的文件,但没有后者的痕迹。
下面需要链接到html文件的文件是components/questionbox.js
和components/main.js
。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Questions, Home</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
<!-- Universal JS-ClientSide (1/3): Load React, ReactDOM and the react component to be mounted to the mount node. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.1/react-dom.js"></script>
<script src"/questionbox.js"></script>
<!-- Universal JS-ClientSide (1/3): Load React, ReactDOM and the react component to be mounted to the mount node. -->
<link rel="stylesheet" href="styles.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js"></script>
</head>
<body>
<!-- Universal JS-ServerSide&ClientSide (2/3): Create a mount node to mount the react component to. -->
<div id="mount-node"><%- markup %></div>
<!-- Universal JS-ServerSide&ClientSide (2/3): Create a mount node to mount the react component to. -->
<!--script id="jsonifiedInitialProps" type="application/json">
{{{ jsonifiedInitialProps }}}
</script-->
<script type="text/babel">
// Universal JS-ClientSide (3/3): Mount the react component to the mount node.
ReactDOM.render(<QuestionBox />, document.getElementById('mount-node'));
// Universal JS-ClientSide (3/3): Mount the react component to the mount node.
</script>
<script src"/main.js"></script>
</body>
</html>
我服务器代码上的相关代码片段如下; app.use(static(__dirname + '/components'));
使用koa-static
npm模块。
更令我惊讶的是css
同一文件夹中的文件可以成功链接到html文件。
这里有什么问题?关于HTTP的这个基本主题,我想念的是什么?
答案 0 :(得分:1)
脚本标记的src属性中有一个拼写错误链接到这两个javascript文件,它们中缺少等号=
。
<script src="questionbox.js"></script>
<script src="main.js"></script>