laravel6.*框架搭配,除根目录能访问外,其他目录都不能访问

本文指导如何在Apache和Nginx中配置.htaccess和nginx.conf,涉及URL重写规则,如处理Authorization头、删除尾部斜杠和前端控制器规则,以及配合伪静态设置。

一、如果你使用的是apache,则需要再项目public目录下添加一个.htaccess 文件

文件内容如下:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

二、如果配合使用的是nginx,那么需要修改伪静态文件内容

location / {  
	try_files $uri $uri/ /index.php$is_args$query_string;  
}

### AntV G6 树结构不能有多父节点的原因 AntV G6 的树结构本质上是一种树形数据模型,树形结构的定义决定了每个节点(除根节点)有且仅有一个父节点。树是一种层次分明的无环图,每个节点沿着父节点向上追溯,最终会汇聚到根节点。如果一个节点有多个父节点,那么树的层次结构就会被破坏,形成复杂的网状结构,这与树的基本定义不符。而且在树的布局算法中,通常是基于单一父节点的假设来计算节点的位置和层次关系的。如果存在多父节点,现有的布局算法将无法正确处理,可能导致布局混乱、重叠等问题。 ### 解决方案 #### 1. 转换为图结构 如果数据中存在多父节点的情况,可以考虑将树结构转换为图结构。在 G6 中,图结构允许节点之间存在复杂的连接关系。 ```javascript import G6 from '@antv/g6'; const data = { nodes: [ { id: 'node1', label: 'Node 1' }, { id: 'node2', label: 'Node 2' }, { id: 'node3', label: 'Node 3' }, ], edges: [ { source: 'node1', target: 'node2' }, { source: 'node1', target: 'node3' }, { source: 'node2', target: 'node3' }, // 这里 node3 有两个父节点 ] }; const graph = new G6.Graph({ container: 'mountNode', width: 800, height: 600, layout: { type: 'force' } }); graph.data(data); graph.render(); ``` #### 2. 数据预处理 在将数据传入 G6 之前,对数据进行预处理,通过复制节点的方式来模拟多父节点的情况。例如,将一个有多个父节点的节点复制成多个副本,每个副本分别连接到不同的父节点。 ```javascript // 假设原始数据中有一个节点 node3 有两个父节点 node1 和 node2 const originalData = { nodes: [ { id: 'node1', label: 'Node 1' }, { id: 'node2', label: 'Node 2' }, { id: 'node3', label: 'Node 3' }, ], edges: [ { source: 'node1', target: 'node3' }, { source: 'node2', target: 'node3' }, ] }; // 数据预处理 const newNodes = []; const newEdges = []; originalData.nodes.forEach(node => { const incomingEdges = originalData.edges.filter(edge => edge.target === node.id); if (incomingEdges.length > 1) { incomingEdges.forEach((edge, index) => { const newNode = { ...node, id: `${node.id}_copy_${index}` }; newNodes.push(newNode); newEdges.push({ source: edge.source, target: newNode.id }); }); } else { newNodes.push(node); newEdges.push(...originalData.edges.filter(edge => edge.target === node.id)); } }); const processedData = { nodes: newNodes, edges: newEdges }; const graph = new G6.TreeGraph({ container: 'mountNode', width: 800, height: 600, layout: { type: 'compactBox' } }); graph.data(processedData); graph.render(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值