我在nodejs项目中得到了这样的目录结构
这是我的login_nimda.html
代码段与CSS链接:
我从login_nimda.html
投放nimda.js
,但关联的CSS文件未加载。
正如您所看到的,我使用了根相对路径,但我仍然没有得到任何结果。我必须使用CDN for Bootstrap并且无法使用下载的文件的原因相同。
应该是怎么回事?我在哪里弄错了链接的href
属性?
编辑:
这是我的nimda.js
代码段,用于提供HTML文件login_nidma.html
router.get('/', function( req, res){
let html = fs.readFileSync(path.join(__dirname,'../static/login_nimda.html'));
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(html);
});
答案 0 :(得分:1)
您还需要提供静态文件(例如.css
文件)。
您可以使用Express的内置中间件来提供静态文件express.static()
。
这是基本的例子:
// serve static files in "app/static" with your node.js server
app.use('/static', express.static('app/static'))
现在,您可以在/static
中的浏览器(以及HTML文件中)访问它们:
<link href="/static/css/login_nimda.css" rel="stylesheet">
请在此处详细了解express.static()
及其用法:http://expressjs.com/en/starter/static-files.html
答案 1 :(得分:1)
使用express.static
中间件提供静态文件,而不是:
router.get('/', function( req, res){
let html = fs.readFileSync(path.join(__dirname,'../static/login_nimda.html'));
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(html);
});
https://expressjs.com/en/starter/static-files.html
不要忘记您可以使用path
模块和__dirname
变量(请参阅 this SO question )来帮助告诉express.static(...)
您的静态文件的确切位置是
如果您想在不同文件中app.use(express.static(...))
倍数,则需要确保将中间件应用于同一个app
实例。 I've created a code sample to illustrate. 在 server.js#L10 中,我将var app
传递到routes.js
模块(相当于您的nimda.js
{1}})。在 routes.js#L4 中,我在与.use()
中创建的var app
相同的server.js
上呼叫app.use(express.static(...))
。在您的server.js
和nimda.js
中使用var app = express()
的重构版本中,我猜测您在每个文件中都创建了一个新的routes.js
(这是我们想要避免的事情)。
我不建议您将静态资产分成两个不同的位置,就像您已经想象的那样,除非您有充分的理由这样做。 Keeping them in one central location 可确保我们甚至不需要单独的nimda.js
(又名idx = df1.index.union(df2.index).union(df3.index)
print (idx)
Index(['2010', '2011', '2012', '2013',
'2014', '2015', '2016', '2017'], dtype='object', name='year')
)文件,从而帮助您降低应用的复杂程度目前您需要的功能。
答案 2 :(得分:0)
如果您使用的是Express,则根本不必处理对静态内容的请求。 Express会自动返回你的静力学。只需使用路径和路径和文件夹结构。如
app.use(&#39; / my_statics&#39;,express.static(__ dirname +&#34; / public&#34;));
如果你在 /public/assets/css/a.css 下面有一个c.c
http://example.com/my_statics/assets/css/a.css
如果您在 /public/assets/b.html 下面有b.html工作
http://example.com/my_statics/assets/b.html
编辑:我为我的sideproject DataEndpoints建立了类似的设置。检查 app.js 是否有静态和路由器设置。还要检查路由器文件夹以查看如何处理,您可能需要查看 views 文件夹下的如何设置静态文件链接