代码之家  ›  专栏  ›  技术社区  ›  code.g

编辑文件时,Vagrant上的网页未更新

  •  0
  • code.g  · 技术社区  · 7 年前

    我在 流浪汉 已命名 指数html ,并将nginx配置为web服务器vhost-like my.loc ,索引。html可以在我的Mac上的chrome中访问,这是流浪汉的主机。
    现在的问题是:
    当我编辑索引时。html文件,如

    <html>
    <head>
    <title>title11</title>
    </head>
    <body>
    </body>
    </html>
    

    然后我改变了 title11 title22 ,网页不会在chrome上更改。
    首先,我认为这是缓存问题,我配置了nginx。按如下方式配置以禁止缓存:

    location ~.*\.(js|css|html|png|jpg)$
    {
        #expires    -1;
        add_header Cache-Control no-cache;
        add_header Cache-Control no-store;
    }
    

    它不起作用。然而,我发现如果我运行cmd touch /myweb/index.html 在《流浪者》中,Chrome上的网页会发生变化,但这不是我想要的。

    编辑:
    这是我的nginx。形态

    user nginx;
    worker_processes auto;
    error_log /vagrant/nginx-error.log;
    pid /var/run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections  1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /vagrant/nginx-access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        include /vagrant/nginx-vhosts/*.conf;
    }
    

    现在我发现如果我编辑索引。然后页面将在我的Mac OS中的chrome上更改。所以我认为问题是关于流浪汉的。

    1 回复  |  直到 7 年前
        1
  •  0
  •   code.g    7 年前

    我终于解决了问题,改变了 sendfile on sendfile off 在nginx中。形态。

    我从这篇文章中得到了答案: Clear nginx Cache in Vagrant

    这是因为:

    Sendfile用于在一个文件描述符和另一个文件描述符之间复制数据,显然在虚拟机环境中运行时,或者至少在通过Virtualbox运行时,会遇到一些实际问题。在nginx中关闭此配置将导致通过不同的方法提供静态文件,您的更改将立即反映出来,毫无疑问

    推荐文章