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

请教 nginx 配置 vue 的问题

  •  1
     
  •   gogobody · 2017-10-07 22:39:57 +08:00 · 5154 次点击
    这是一个创建于 2364 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:

    访问 http://xx/landf/ 正常

    访问 http://xx/landf/index.html 没有渲染

    访问 http://xx/others 没有渲染

    在 vue 中点击链接跳转正常,直接输入 vue 路由链接 没有渲染

    配置参考的网上的。。。 请问这是什么原因呢?

    nginx 配置如下:

            location /landf/ {
                    root /home/ubuntu/python/lost_found/web/;
                    index index.html index.htm;
    
            }
            location / {
                    try_files $uri $uri/ /landf/index.html;
                    index index.html;
            }
    
    
    第 1 条附言  ·  2017-10-08 12:54:37 +08:00
    现在不知怎么的,直接在浏览器输入 vue 配置的路由呢能正常访问了。。。
    但是对其他所有连接都被 nginx 转发到了 vue 的 index.html,这些链接资源加载正常,但是没有被渲染。。。。
    15 条回复    2017-10-08 10:45:20 +08:00
    Pastsong
        1
    Pastsong  
       2017-10-07 22:45:12 +08:00
    vue 这种框架在后端只有一个入口(除 ssr ),所有路径都返回 index.html 就好了
    gogobody
        2
    gogobody  
    OP
       2017-10-07 22:46:21 +08:00
    @Pastsong nginx 第二条不是这个意思嘛。。。
    Trim21
        3
    Trim21  
       2017-10-07 23:19:48 +08:00
    @gogobody 不是,是先请求$uri $uri/
    Trim21
        4
    Trim21  
       2017-10-07 23:20:00 +08:00
    try_files /landf/index.html;
    gogobody
        5
    gogobody  
    OP
       2017-10-07 23:49:14 +08:00
    @Trim21 这样写 给了一个错 nginx: [emerg] invalid number of arguments in "try_files" directive in /etc/nginx/conf.d/lostandfound.conf:26
    Trim21
        6
    Trim21  
       2017-10-08 00:44:54 +08:00
    @gogobody 啊啊啊啊抱歉说错了

    访问 http://xx/others 没有渲染是因为 index.html 请求成功,但是 /static/文件夹里的 js,css 之类的请求失败了


    其实不需要配置 landf 那一项,直接这样

    location / {
    root /home/ubuntu/python/lost_found/web/;
    index index.html;
    try_files $uri $uri/ /index.html;
    }
    Trim21
        7
    Trim21  
       2017-10-08 01:01:12 +08:00
    root /home/ubuntu/python/lost_found/web/landf/;
    gogobody
        8
    gogobody  
    OP
       2017-10-08 01:03:21 +08:00 via Android
    @Trim21 感谢,已经关了电脑了,明天再试试,主要是我想把配置在 /land/路径下,而不是根路径
    Trim21
        9
    Trim21  
       2017-10-08 01:05:47 +08:00
    @gogobody 你用的是 history 模式吗..
    gogobody
        10
    gogobody  
    OP
       2017-10-08 01:23:19 +08:00 via Android
    @Trim21 是的!
    Trim21
        11
    Trim21  
       2017-10-08 01:32:45 +08:00
    @gogobody 感觉 history 模式挂载在目录下挺蛋疼的...要自己手动在 path 前面都加上路径
    是不是我姿势不太对...有什么相应的设置吗
    Trim21
        12
    Trim21  
       2017-10-08 01:39:41 +08:00
    @Trim21
    有点词不达意...原来在 vue-router 里面设置了 path:"/index"为了挂载到 sub 目录下面好像只能手动改成 path:"/sub/index.."
    gogobody
        13
    gogobody  
    OP
       2017-10-08 01:46:40 +08:00 via Android
    @Trim21 我是看了 https://www.zhihu.com/question/46630687 这个二楼配置的,不知道为什么效果不一样
    Trim21
        14
    Trim21  
       2017-10-08 02:06:49 +08:00
    @gogobody 谢谢老哥...
    他没牵扯到在两个路径部署同一个 app 的情况..
    gogobody
        15
    gogobody  
    OP
       2017-10-08 10:45:20 +08:00 via Android
    @Trim21 大神可以留个联系方式不
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2856 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:13 · PVG 21:13 · LAX 06:13 · JFK 09:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.