cppcms的js文件路径问题,也可以换为cppcms的资源文件路径问题

下午弄了一下午的cppcms的路径,自己仿照cppcms的官方文档中的例子做的前端展示页面,总是不能加载js,换句话说,总是按照路径找不到该js,下面我就说一下这个问题。研究了三四个小时,最后终于解决了。

问题描述:

  在cppcms的工程当中,放html.tmpl文件的文件夹中放了很多.tmpl的文件,这些是原始的html文件,这些文件中需要用到js,css等样式来进行渲染和处理,但是路径确不是按照通常的相对路径或者绝对路径来想当然的处理,在cppcms需要进行指定。

第一种情况:

 在本地运行时 配置文件如下

{
	"service" : {
		"ip":"0.0.0.0",
		"api" : "http", 
		"port" : 8082
		},
		
	"http" : {
			"script_names" : ["/query"]
		},

	"algorithm":{
    	"composition":{
    		"news":0.4,
    		"picture":0.2,
    		"video":0.2,
    		"tweet":0.2
    	}
    },
     "file_server" : {
                  "enable" : true,
                  "document_root" : "../resources"
       },
}
上面中的file_server就是用来指定资源文件所在地的,比如你的资源文件是放在resources里,这里的../resources是相对于你执行可执行文件的地址。上面的ip和api就是localhost的运行设置。也可以使用绝对路径,如果是自己测试的话可以使用相对路径,但是如果是将自己的电脑作为服务器的话还是用绝对路径比较好。

第二种情况 在nginx的conf配置文件中:

upstream semsbackend {
    server localhost:8082;
}

server {
    listen       8088;
    server_name  localhost;
    access_log /opt/ide.log main;


    location = /favicon.ico {
        log_not_found off;
        log_subrequest off;
    }

    location / {
        rewrite ^/(.*)$ http://$host/ide/errors;
    }
 
    location /ide_log {
    	alias /data/ide_log/;
	autoindex on;
	allow 127.0.0.1; 
	allow 10.58.0.0/16;
        deny all;
      }

    location ~ ^/(images|script|style|plugin)/ {
        root /opt/sems/resources;
        expires 1d;
    }

    include ./conf.d/fastcgi.sems;
}
里面有个location字段,介绍了root的所在路径是在/opt/sems/resources这里的使用nginx反向代理,模拟真实环境,所以直接使用了绝对路径,将资源文件放在了/opt/sems/resource下面,程序可以通过这里找到需要的资源文件

你可能感兴趣的:(js,路径,Path,conf,cppcms)