V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
isudng
V2EX  ›  PHP

想实现网站背景每天更换一个,求助

  •  
  •   isudng · 2013-11-29 17:12:52 +08:00 · 5137 次点击
    这是一个创建于 4036 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近做一个小的在线社区网站,选用的wecenter作为核心。
    想网站每天更换一个背景图片。
    例如:11月30日是图片a,31日是图片b,12月1日是图片c……
    我会上传一批量的图片到服务器中命名为20131130.jpg / 20131131.jpg / 20131201.jpg什么的。
    初步打算的是css背景指向一个php地址,然后这个php文件再根据日期指向不同的jpg图片。
    不知道这样行得通不。
    不熟悉代码,望大神们指点一下。

    网站地址:x.ronsir.com 有更新了会回报v2ex社区的。
    -----------------------
    另外还有想法就是网站白天的背景图片和晚上不一样。但是先实现上面的再说吧。
    19 条回复    2017-08-15 12:24:28 +08:00
    jingwentian
        1
    jingwentian  
       2013-11-29 17:21:14 +08:00   ❤️ 1
    1. 你的背景图片, 在大分辨率显示器上显示被平铺了...
    2. 既然你把图片以图片命名了,那就在链入图片的时候以 当前日期.jpg 拼接一下路径就得了
    icevil
        2
    icevil  
       2013-11-29 17:22:44 +08:00   ❤️ 1
    css 通常会缓存的,
    但为了这个特意设置 css 强制不缓存没必要。

    建议 js 实现,没必要再写一个 php 判断。
    skydiver
        3
    skydiver  
       2013-11-29 17:23:00 +08:00
    css背景指向一个php地址,这样缓存策略比较麻烦吧,毕竟地址url一样。

    最好还是在css拼一下图片名字。
    shunai
        4
    shunai  
       2013-11-29 17:23:26 +08:00   ❤️ 1
    slixurd
        5
    slixurd  
       2013-11-29 17:56:20 +08:00
    缓存不用担心吧= =
    css指向的地址后面用js添加随机数(当然也可以php加,实现稍有不同而已,例如main.css?123
    chloerei
        6
    chloerei  
       2013-11-29 18:06:27 +08:00   ❤️ 1
    用脚本输出一小段 <style></style>
    niseter
        7
    niseter  
       2013-11-29 18:22:35 +08:00
    还不如用cron逐个替换文件算了。。。
    myljs
        8
    myljs  
       2013-11-29 18:59:27 +08:00   ❤️ 1
    既然都已经有命名了,用 JS ,当用户访问的时候,获取今天的日期组合成今天图片的 url,然后输出 style 标签不就可以了?
    n0rmrx
        9
    n0rmrx  
       2013-11-29 19:01:41 +08:00 via iPhone   ❤️ 1
    我尝试过根据关键词从flickr上抓图片做背景,效果好赞!
    n0rmrx
        10
    n0rmrx  
       2013-11-29 19:02:52 +08:00 via iPhone
    每个用户看到的图片都是实时抓的,处理一下加载失败的。:)
    hoosin
        11
    hoosin  
       2013-11-29 22:02:17 +08:00
    @icevil 加时间戳就行啊!
    icevil
        12
    icevil  
       2013-11-29 22:24:53 +08:00
    @hoosin
    你说的就是我所指的「特意设置强制不缓存」的一种实现啊。
    你这样客户端每次访问都要传输一次 css 文件。
    浪费客户端和服务器流量啊,所以我说没必要啊。

    反正 lz 图片文件名是确定的,用 js 获取当前日期再操作 DOM 设置背景图片不更好么?
    chairuosen
        13
    chairuosen  
       2013-11-29 23:40:51 +08:00   ❤️ 1
    对,js拼一下设置背景就行
    wdlth
        14
    wdlth  
       2013-11-29 23:44:25 +08:00
    js改一下background-image就够了吧。
    isudng
        16
    isudng  
    OP
       2013-11-30 11:22:27 +08:00
    @jingwentian 现在好了,实现功能了,背景弄成了cover,不过默认情况下左边在chrome下会有一条白色竖线,不知道怎么回事。定义成top left竖线挪到右边,勉强过关。谢谢
    isudng
        17
    isudng  
    OP
       2013-11-30 12:30:33 +08:00
    @ccbikai 那代码看着貌似行,拿过来不会用,囧,试了试不行,应该是我代码编辑出错吧。mark一下以后学习,感谢。
    dappbujiujiu
        18
    dappbujiujiu  
       2013-12-10 15:36:40 +08:00
    简单看了下~ 其实基于你的需求 有好几种解决方案~
    一个就是用js改background-image这种方法~ 但是每次都用加载调用此js方法,没有必要的损耗,
    还有我个人推荐 就是在你的样式里固定 写死比如 background-image:static/img/bgimag.jpg
    自己写个shell或什么的脚本 crontab 定在每日凌晨,去把对应日期的背景图片进行覆盖
    insoxin
        19
    insoxin  
       2017-08-15 12:24:28 +08:00 via Android
    网站挂了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5343 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:00 · PVG 15:00 · LAX 23:00 · JFK 02:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.