妈的,刚在隔壁论坛又看到一个“大神”教人把jQuery.js直接扔到DedeCMS根目录,然后调用什么/jquery.js,我血压瞬间就上来了!兄弟,你这是嫌新手站长的服务器太安全,非要给挂马的留个后门大客厅是吧?当年我就是信了这种鬼话,把一堆静态资源乱塞,结果网站被插了暗链,百度蜘蛛爬得那叫一个欢,收录倒是没涨,快照里全是“澳门赌场上线了”,凌晨三点收到告警邮件盯着统计后台那条诡异的流量曲线,抽了三根烟才冷静下来开始通宵删木马。
听我一句劝,千万不要,永远不要,把你下载的、自己写的任何js、css、图片文件,直接上传到根目录(就是跟index.php同级的那堆地方)!织梦它有自己约定俗成的“杂物间”,专门收留这些文件。
正确且唯一的“保命”存放区,是这里:/uploads/ 目录下!通常,大家都会在/uploads/allimg/(放图片的)旁边,自己新建一个文件夹,比如:/uploads/js/ (存放所有JavaScript文件)/uploads/css/ (存放所有样式表文件)/uploads/plugins/ (存放各种特效、轮播插件)
你把文件通过FTP或者后台的“文件管理器”上传到这些文件夹里,就对了。这地方权限清晰,模板引用起来也方便,最关键的是——安全,跟核心程序隔离开了。
那传上去了,怎么在模板里调用呢?分两种情况,兄弟你可得看仔细了:
情况一:你在后台用“可视化编辑器”加特效。
比如你文章里想插个图表,需要引入一个chart.js。找到编辑器上的“源代码”或者“HTML”按钮,切换到代码视图,然后在</head>标签前面(记住是前面!),加上这么一行:<script type="text/javascript" src="{dede:global.cfg_cmsurl/}/uploads/js/chart.js"></script>
看懂没?那个{dede:global.cfg_cmsurl/}就是自动获取你网站根目录地址,后面接上你在uploads里的路径。这是动态标签引用的写法,避免写死绝对路径导致搬家后全崩。
情况二:你想在模板文件(.htm)里全局调用。
这是最常用的,比如全站都要用的jQuery和公共样式。用FTP打开你的模板目录(默认是/templates/你的模板名称/),找到index.htm、head.htm或者footer.htm这类文件。同样,在</head>前加入:<script src="{dede:global.cfg_cmsurl/}/uploads/js/jquery.min.js"></script><link href="{dede:global.cfg_cmsurl/}/uploads/css/style.css" rel="stylesheet">
最后,一个血的教训:别去乱改系统自带的那些.js文件!除非你知道你在干什么。我有个朋友,手贱去改了/include/dedeajax2.js,想“优化”一下,结果整个后台的ajax功能全部失效,文章发布不了,栏目管理不动,全站后台操作变灰,那感觉真是欲哭无泪。想加功能?老老实实在你自己uploads的js里写,然后用上面的方法引进去,这才是正道。
就这么简单一件事,搞清楚了能避免未来90%的“我的网站怎么显示不正常”和“我的站是不是被黑了”这种问题。路子走对了,网站加载速度和安全性都能上一个台阶。别再问JS放哪了,就丢/uploads/里,然后该干嘛干嘛去!
