问题现象

外联js文件不生效

html代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<meta charset="utf-8">
<title>HelloWorld</title>
</head>
<body>
<p>Hello World 1</p>
<p>Hello World 2</p>
<!--
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
-->
<script src="js/d3.v3.min.js" charset="utf-8"></script>
<script>
d3.select("body").selectAll("p").text("www.ourd3js.com");
</script>
</body>
</html>

分析过程

注释本地js,改用网络js能正常解析,并显示www.ourd3js.com;
通过chrome-F12抓包,发现在请求d3.v5.min.js文件时,status为403,正常应该是200;
怀疑linux服务器js及其下文件权限导致;

chmod -R 755 js/后,访问正常,返回www.ourd3.js.com

结论

权限受限,js文件返回码非200,建议权限设置为755.