使用ejs模板时,css样式丢失,无法加载


使用nodejs后台,前端用ejs模板。但在查看时,发现css样式都显示不出来。怎么才能正常显示样式呢?


 <link rel = "styesheet" href="../public/css/common.css">

ejs放在views文件夹下,css js jpg等放在public下

ejs html5

sanfack 9 years, 7 months ago

先看看有没有已经配置路径,然后你的css文件基于已配置的静态文件的路径上续写路径。

窝是妮爸爸 answered 9 years, 7 months ago

还是要看你应用中设置的静态路径是什么,是 /public 还是 /
或者你打开firebug(火狐浏览器)或者开发者工具(谷歌浏览器)里头的 network 那一项,刷新下页面,看他css样式是从什么路径加载的。

非洲小白臉 answered 9 years, 7 months ago

这样的相对目录的解析方式好多时候还是很蛋疼的,所以建议你可以采用:


 <% if(settings.config.WEB_PRODUCTION){ %>

    <!-- INCLUDE STYLESHEET -->
    <link rel='stylesheet' href='http://fonts.useso.com/css?family=Open+Sans:300,400,600&subset=latin,latin-ext'>
    <link rel="stylesheet" href="http://cdn.bootcss.com/font-awesome/4.2.0/css/font-awesome.min.css">
    <!-- INCLUDE JAVASCRIPT -->
    <script src="http://cdn.bootcss.com/modernizr/2.6.2/modernizr.min.js"></script>

<% }else{ %>

    <!-- INCLUDE STYLESHEET -->
    <link rel="stylesheet" href="/public/vendors/bower_components/font-awesome/css/font-awesome.min.css">
    <!-- INCLUDE JAVASCRIPT -->
    <script src="/public/vendors/bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>
<% } %>

利用/path这样的目录来解析到域名的根目录下得公共资源文件夹。

十六夜☆咲夜 answered 9 years, 7 months ago

客户端浏览器访问到的url根路径就是public
<link rel = "styesheet" href="/css/common.css">

死神的翅膀 answered 9 years, 7 months ago

Your Answer