Express在嵌套目录中提供静态文件

时间:2018-03-09 11:47:03

标签: node.js express ejs static-files

我不熟悉使用快速和渲染模板视图,但最近我尝试了一个新的目录结构,这似乎让我的app实例感到困惑。

它不再提供我的static bootstrap, css and image文件了,我的视图现在看起来都搞砸了。

这是我的目录结构

AppName
 - node_modules folder
 - src (all code live here)
        - public (statics)
             - css/mycss, bootstrapcss
             - js/ myjs, bootstrapjs
             - images folder
        - models
        - app.js (entry point)

静态文件似乎比根目录深两级。在我的app.js文件中,我尝试使用express static method,如下所示:

app.use( express.static(path.join(__dirname, './src' + '/public')));

并尝试了这个:

app.use('/src', express.static(path.join(__dirname, '/public')));

在我的观点中,例如静态被称为:

<link href="../public/css/bootstrap.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../public/fonts/glyphicons-halflings-regular.ttf">
<link rel="stylesheet" href="../public/css/styles.css" type="text/css">

<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
<script src="https://cdn.ckeditor.com/ckeditor5/1.0.0-alpha.2/classic/ckeditor.js"></script>

但仍无法将这些文件提供给我的观看次数。我坚持这个。 有人可以帮我吗?感谢

1 个答案:

答案 0 :(得分:2)

试试这个:

app.use(express.static(path.join(__dirname, 'src/public')));

而且:

<link href="/css/bootstrap.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/fonts/glyphicons-halflings-regular.ttf">
<link rel="stylesheet" href="/css/styles.css" type="text/css">