小编kir*_*ern的帖子

图片具有绝对路径-如何在LaravelMix中使用子目录URL

我的Laravel Mix应用程序将放置在服务器上的子目录中,例如:http:// localhost / pat-os-server / public /

我的Vue组件中的图像路径从

<img id="logo" src="../assets/img/pat_logo.png">
Run Code Online (Sandbox Code Playgroud)

<img id="logo" src="/images/pat_logo.png">
Run Code Online (Sandbox Code Playgroud)

现在由于应用程序所在的子目录而未显示该图像。正确的路径应该是images / pat_logo.png(相对-首选)或/pat-os-server/public/images/pat_logo.png(绝对)

我试图像这样在webpack.mix.js中设置输出路径:

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
Run Code Online (Sandbox Code Playgroud)

但这并不会改变输出路径。仍然是/images/pat_logo.png。我希望它现在是/pat-os-server/public/images/pat_logo.png。对setPublicPath和setResourceRoot使用其他值(包括“ /”和“”)不会造成任何差异。

我已经在调用其他方法之前放置了路径设置方法,所以当前的webpack.mix.js如下所示:

const { mix } = require('laravel-mix');

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
Run Code Online (Sandbox Code Playgroud)

如何获得图像的相对输出路径或更改绝对路径?

感谢您的支持。

编辑

我刚刚意识到,在我的laravel项目中创建了一个子文件夹“ pat-os-server”,并将所有编译的项目文件复制到该子文件夹中。所以看来我误解了setPublicPath设置。

希望将输出文件放置到另一个文件夹。我希望项目中的URL指向正确的路径,该路径不是主机/根目录,而是子目录。

laravel vue.js laravel-mix

4
推荐指数
1
解决办法
2217
查看次数

使用 AJAX 时 Laravel 会话 cookie 未加密

我即将为我的应用程序创建一个单点登录界面。另一个应用程序发送 AJAX POST 请求,我对用户进行身份验证并返回响应。正在设置会话 cookie,但未加密。

相关代码

$user = User::where('email', $email)->first();
if ($user) {
  Auth::login($user);
  return response("OK", 200);
}
Run Code Online (Sandbox Code Playgroud)

我在 Kernel.php 中的“api”部分

'api' => [
    'throttle:60,1',
    'bindings',
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \App\Http\Middleware\EncryptCookies::class,
],
Run Code Online (Sandbox Code Playgroud)

我的路线(没有额外的中间件)

Route::post(
  '/auth-request', [
  'uses' => 'UserController@post_authenticateRequest',
  'as' => 'authrequest'
]);
Run Code Online (Sandbox Code Playgroud)

Kernel.php 中的 EncryptCookies 类在 AJAX 发布请求中似乎没有任何影响 - 但仅对会话部分有效。当我手动添加一个 cookie 时

response("OK", 200)->cookie("mysession", Session::getId(), 60);
Run Code Online (Sandbox Code Playgroud)

它是加密的!

当我完全删除 Kernel.php 中“api”和“web”的 EncryptCookies 时,从 AJAX 请求创建的会话被正确加载 - 但不再加密。

如何加密 AJAX 会话 cookie?我还需要其他中间件吗?

谢谢你的帮助。

laravel laravel-5

2
推荐指数
1
解决办法
1347
查看次数

Vite 在更改时不会更新包含的 js 文件

在我的 Quasary CLI 项目中,我包含了我自己的 js 文件,如下所示:

import Task from "src/js/task.js"
Run Code Online (Sandbox Code Playgroud)

当我更改此文件 (task.js) 中的某些内容并保存它时,我的更改在热重载中不可见或不起作用。但是我在控制台中看到了这一点:[vite] 热更新:/src/components/kk-phase-tasks.vue

所以热重载似乎可以识别更改和更新。

即使重新加载页面后,我的更改也不会内置。

只有在关闭开发服务器并再次启动它(类星体开发)后,我的更改才会得到反映。

我是否必须定义 vite 应更新的文件夹或文件?我缺少什么?

vue.js quasar-framework vite

2
推荐指数
1
解决办法
6826
查看次数